2011-08-01 6 views
1

Mon application se bloque lorsque j'appuie sur le bouton «own». Je ne sais pas ce qui ne va pas avec mon code. Je suis nouveau à ce sujet, donc si j'ai complètement foiré, ne soyez pas trop dur s'il vous plaît :). EDIT: Voici ce que Xcode dit:Quel est le problème avec cette ligne?

#1 0x000144fd in -[UIApplication sendAction:to:from:forEvent:]() 

Les application se bloque sur la ligne:

if (thing.hidden == NO) { 

Ceci est le code qui appartient à "propre":

- (IBAction)own { 

if (thing.hidden == NO) { 

int rNumber = rand() % 4; 

switch (rNumber) { 
    case 0: 
     result.text = @"A"; 
     break; 
    case 1: 
     result.text = @"B"; 
     break; 
    case 2: 
     result.text = @"C"; 
     break; 
    case 3: 
     result.text = @"D"; 
     break; 
    default: 
     break; 
} 

} 
if (thing.hidden == YES) { 
    int rNumber = rand() % 3; 
+0

sur quelle ligne se plante-t-il? Quel est le message d'erreur? – Eimantas

+0

Quelle est l'erreur dans la fenêtre de débogage? – rckoenes

+0

Collez le code complet. Collez également les journaux de la console. –

Répondre

0

Rien ne semble mal dans votre code, en supposant que les objets chose et résultat sont retenus correctement.

+0

Pouvez-vous expliquer cela? –

0
- (IBAction)own { 

if (thing.hidden == NO) { 

int rNumber = rand() % 4; 
NSString *myText = @""; // 
switch (rNumber) { 
    case 0: 
     myText = @"A"; 
     break; 
    case 1: 
     myText = @"B"; 
     break; 
    case 2: 
     myText = @"C"; 
     break; 
    case 3: 
     myText = @"D"; 
     break; 
    default: 
     break; 
} 
result.text = myText; 
} 
if (thing.hidden == YES) { 
    int rNumber = rand() % 3; 
+0

Voir le commentaire ci-dessus. Dois-je toujours utiliser votre code ou puis-je conserver le mien? –

+0

Il n'y a rien de mal dans votre code sauf le paramètre 'expéditeur' de votre IBAction. vous pouvez utiliser le mien aussi bien il n'y a rien de mal sauf une petite modification –

+0

Je suis nouveau à poster mes propres questions sur stackoverflow, comment puis-je définir ma question à répondu? –

2

Il peut y avoir plusieurs Rason

IBAction est en fait juste un soupçon qui indique constructeur d'interface où trouver les méthodes dans vos objets afin que vous puissiez lier les contrôles aux méthodes.

Dans iOS, les actions peuvent prendre zéro, un ou deux paramètres.

Si un paramètre, ce paramètre est l'objet d'envoyer le message:

-(IBAction) someAction: (id) sender; 

Si deux paramètres, il prend la forme:

- (IBAction) someAction:(id) sender forEvent: (UIEvent*) event; 

vous pouvez utiliser - (void) propre et se connecter à votre bouton dans le fichier nib

0

Je viens de répondre à cette question. C'est à cause de la gestion de la mémoire, j'envoie l'action liée au bouton à un viewController libéré. J'espère que cette aide. (BTW, j'utilise le mode arc)