NSMutableArray leer nach addObject
Möchte ich hinzufügen, dass ein Objekt in einem NSMutableArray:
NSLog(@"Object text: %@", object.text);
NSLog(@"Object: %@", object);
[appdelegate.objects addObject:object];
NSLog(@"Objects array size: %i", [appdelegate.objects count]);
Dies ist die Ausgabe:
Object text: This is the text
Object: <Object: 0x6e762c0>
Objects array size: 0
Wie das möglich ist, füge ich ein Objekt in der nächsten Zeile, es ist immer noch leer. Die NSMutableArray
ist nicht nil
, denn das würde zu einer Ausnahme.
Jemand eine Vermutung?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wäre es nicht eine Ausnahme auslösen, wenn es
nil
. Können Sie noch eine Nachrichtnil
Objekt, wenn es in der Regel reagiert auf diese Nachricht. In diesem Fall, dann bekommst du nur 0. Ich glaube, du bist nicht die Zuweisung der array. Stellen Sie sicher, dass Sie das tun:Als debugging-Tipp, wenn Sie unsicher sind über den Zustand eines Objekts, und wollen sicherstellen, dass das Objekt tatsächlich vorhanden ist, und ist bereit, verwendet werden, verwenden Sie
assert(appdelegate.objects);
Wenn das array null ist, kann der code nicht weiter ausgeführt werden an dieser Linie. Wenn es nicht aufhören, auf diese Linie, dann wissen Sie das Objekt im Speicher vorhanden.Ihre NSMutableArray ist in der Tat fast sicher null. Es wird nicht eine Ausnahme auslösen, weil jede Nachricht zu senden, um
nil
in ObjC ist eine no-op und würde sich Verhalten wie Sie sehen, mit einem return-Wert von null odernil
usw.Versuchen, Protokollierung, als auch zu überprüfen.