NSMutableArray containsObject Methode nicht zu erkennen, Objekt
//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 ist es nicht zu erkennen, dass die UIButton ist im array?
BEARBEITEN
Es stellt sich heraus, dass es nicht selbst erkennen, es Recht, nachdem es Hinzugefügt:
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[[self hBtns] addObject:btn];
if ([[self hBtns] containsObject:btn]) //Returns false.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Klingt wie die
isEqual:
Vergleich fehlschlägt. Können Sie werfen Sie einen Blick auf diehash
für den UIButton in beiden Orten (wo Sie Hinzugefügt, und klicken Sie dann imdidPushBtn
) und sehen, ob Sie den gleichen Wert?Hatte ich vergessen zu initialisieren ist die array - (*doh*):
[NSMutableArray arrayWithCapacity:0]
(oder nur[NSMutableArray array]
) statt. Die größere Frage in meinem Kopf ist, ob die Immobilie solltereadonly
), und das array soll nur angelegt werden, einmal bei der Initialisierung der übergeordneten Klasse.