2010-11-17 17 views
0

Je suis un débutant et j'ai des problèmes avec la création d'instances de classe.Cocoa: attente entre instanciation des classes

Voici la configuration. J'ai une classe qui boucle à travers un tableau. (J'appellerai ceci la "classe externe" car ma terminologie n'est pas encore prête pour la vitesse!). Sur chaque boucle, il crée une instance d'une autre classe. (que j'appellerai la "classe interne")

actuellement, mon tableau a trois éléments, et donc trois instances de la classe interne sont créées. Comme la boucle de la classe externe est exécutée à la vitesse de l'éclair, les trois classes internes sont créées presque simultanément. Cependant, la classe interne a une vue d'alerte que l'utilisateur doit voir. Une fois la vue d'alerte désactivée, la classe se termine. La réponse de l'utilisateur à la vue d'alerte n'empêchera jamais la création des autres classes internes, mais les autres classes internes ne doivent pas être créées tant que la vue d'alerte n'est pas vue et rejetée.

Comment puis-je empêcher la boucle de la classe externe de créer d'autres classes internes jusqu'à la fin de la classe interne précédente.

Répondre

0

Vous ne devriez pas utiliser une boucle pour cela; les boucles tournent à la vitesse du processeur; aussi vite qu'il peut exécuter le code, c'est exécuté. Puisque vous avez besoin de l'interaction de l'utilisateur ici, vous devriez utiliser une sorte de rappel. Créez votre première classe interne et définissez un compteur (ou une variable d'instance qui est un tableau). Dans le rappel d'alerte (utilisez la propriété delegate de UIAlertView), revenez à votre code de création de classe, créez le second, puis arrêtez jusqu'à ce que l'alerte soit affichée.

+0

Merci Ben. Je comprends un peu. Je peux définir un drapeau à l'intérieur de la classe interne pour dire que la classe est terminée. Cependant, sans la boucle, comment le code de création de classe saura-t-il quand créer une autre instance, ou même s'il doit en créer une? La classe interne n'a aucune idée du nombre de fois qu'elle devrait être utilisée. – Typhoon101

+0

Utilisez les variables d'instance au lieu de locales, de cette façon vous pouvez les suivre à travers plusieurs appels à votre méthode. –

0

Pensez-vous que la réponse sera aussi littéralement décrite? Il vous sera plus facile de coller le code au lieu de le décrire. Juste une critique positive. :)