Ich habe eine App, die bei normalem Gebrauch ohne Probleme zu laufen scheint. Der Clang Static Analyzer meldet ebenfalls keine Probleme. Wenn ich versuche, es in Instruments auszuführen, schlägt es mit einer nicht erkannten Selektorausnahme fehl.Die iPhone App, die in Geräten läuft, schlägt mit nicht erkanntem Selektor fehl.
Die Codezeile eine einfache Eigenschaft Setter von der Form ist:
self.bar = baz;
Um herauszufinden, was los ist, habe ich ein NSLog() sofort oben rufen:
NSLog(@"class = %@ responds = %d", [self class], [self respondsToSelector:@selector(setBar:)]);
self.bar = baz;
Auf der Emulator (ohne Instrumente) und auf einem Gerät zeigt dies genau das, was ich erwarten würde:
Klasse = Foo reagiert = 1
Wenn unter Instruments ausgeführt wird, erhalte ich:
class = Foo antwortet = 0
Ich bin ratlos, was dies verursachen könnte. Vielleicht wird ein anderer Speicherort in der Umgebung von Instrumenten trommelt? Kann jemand vorschlagen, wie ich das debuggen könnte?
Das wird keine Beobachter der Eigenschaft benachrichtigen, und es ist möglich, dass bar nicht direkt als Instanzvariable implementiert ist. Es kann aus anderen Werten synthetisiert werden. Zum Beispiel könnte eine "fullname" -Eigenschaft in den "firstname" - und "lastname" -Ivar gespeichert werden, und kein ivar würde direkt darauf sichern. –