2010-12-20 11 views
0

aktiviert wird. Bitte schauen Sie sich meinen unten stehenden Code an.Hilf mir! App stürzt ab, wenn das Kontrollkästchen

Gibt es irgendwelche Lecks oder Probleme in meinem Code seit meiner Anwendung abgestürzt ist, wenn ich das Kontrollkästchen aktiviert.

für jede Hilfe Suche ...

Dank !.

// checkbox at normal state 
copyMailCheckbox = [[UIButton alloc] initWithFrame:CGRectMake(150, 220,120 ,40)]; 
UIImage *normalStateImage = [UIImage imageNamed:@"checkbox.jpg"]; 
[copyMailCheckbox setImage:normalStateImage forState:UIControlStateNormal]; 
[normalStateImage release]; 

// checkbox at selected state UIImage 
UIImage *checkedStateImage = [UIImage imageNamed:@"checkbox-checked.jpg"]; 
[copyMailCheckbox setImage:checkedStateImage forState:UIControlStateSelected]; [checkedStateImage release]; 

// checkbox at highlighted state UIImage 
UIImage *highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"]; 
[copyMailCheckbox setImage:highlightedStateImg forState:UIControlStateHighlighted]; [highlightedStateImg release]; 
[self addSubview:copyMailCheckbox]; 
[copyMailCheckbox release]; 

Antwort

3

Sie haben einen Zuordnungsfehler hier:

UIImage *normalStateImage = [UIImage imageNamed:@"checkbox.jpg"]; 
[copyMailCheckbox setImage:normalStateImage forState:UIControlStateNormal]; 
[normalStateImage release]; 

Dieses UIImage Objekt normalStateImage nicht Sie auf ihn los zu rufen. Denken Sie an die Zuweisungsregel. Wenn Sie init aufrufen, behalten oder kopieren, geben Sie das Objekt frei. Andernfalls sollten Sie es nicht tun, weil Sie nicht Eigentümer sind.

PD: Überprüfen Sie auch bitte, was sudo rm-rf zeigt.

+0

Dies ist höchstwahrscheinlich Ihr Problem, wenn das ein Tippfehler war. –

1

Dieses:

*checkedStateImage = [UIImage imageNamed:@"checkbox-checked.jpg"]; 

und diese:

*highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"]; 

Sie einen unbekannten Zeiger oder etwas zu schaffen. Ich weiß nicht, wie das über die Compiler-Warnung erhalten, aber Sie müssen UIImage, zum Beispiel geben ...

UIImage *highlightedStateImg = [UIImage imageNamed:@"checkbox-pressed.jpg"]; 

Auch ich würde vorschlagen, dass Sie .png für Bilder verwenden. Obwohl es nicht benötigt wird, beschleunigt es einige Bildverarbeitungsoperationen und ist das allgemein empfohlene Format für Bilder.

Bearbeiten: Es sieht aus wie Ihr Code ein Tippfehler war, also bitte ignorieren Sie dies.

+0

nicht, dass ein Tippfehler war ... können Sie sich pls auf den Code und geben Sie mir einige guidence auf meine Frage ... – user198725878