// Add the button to the NSMutableArray.
...
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[[self hBtns] addObject:btn];
...
// In another method, try to see if it exists.
- (void)didPushBtn:(id)sender
{
UIButton *btn = (UIButton *)sender;
if ([[self hBtns] containsObject:btn]) // Is false every time.
...
}
Warum erkennt es nicht, dass das UIButton in dem Array ist?NSMutableArray containsObject-Methode, die kein Objekt erkennt
EDIT
Es stellt sich heraus, dass sie es nicht einmal richtig erkennt, nachdem er hinzugefügt wird:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[[self hBtns] addObject:btn];
if ([[self hBtns] containsObject:btn]) // Returns false.
Das war tatsächlich mein nächster Vorschlag. Ich bin froh, dass du es sortiert hast. –
Sie sollten auch sicherstellen, dass setHBtns: das Array nicht behält oder Sie ein Speicherleck haben. –
Entweder das, oder ** sollte ** das Array behalten, und er könnte stattdessen '[NSMutableArray arrayWithCapacity: 0]' (oder nur '[NSMutableArray array]') verwenden. Die größere Frage in meinem Kopf ist, ob die Eigenschaft "readonly" sein sollte, und das Array sollte nur einmal im Initialisierer der enthaltenden Klasse erstellt werden. –