NSZombies fressen das Gehirn meiner App!

Ich habe ein Retain- / Release-Problem. Meine Ansicht ist ziemlich kompliziert, deshalb habe ich NSZombieEnabled auf YES gesetzt und versuche herauszufinden, welches Objekt mir genau Kummer bereitet. Um diesen Prozess zu beschleunigen, frage ich mich, ob es Hinweise oder Tricks gibt, um die Zombies zurück zu dem Grab zu verfolgen, aus dem sie sich herausgegraben haben (sorry, musste es tun), oder zurück zu dem Objekt, mit dem sie verbunden sind? Die kryptische Konsolenmeldung scheint nicht viel Einsicht zu bieten:

NSInvocation: warning: object 0x1076850 of class '_NSZombie_CALayer' does not implement methodSignatureForSelector: -- trouble ahead

Ich habe keine Selektoren, die "Ärger voraus" heißen.

Bearbeiten - Einschließlich Stack Trace:

#0  0x3026e017 in ___forwarding___
#1  0x3024a0a2 in __forwarding_prep_0___
#2  0x302042e8 in CFRelease
#3  0x00c4fc31 in CALayerUpdateSublayers
#4  0x00c4e173 in -[CALayer dealloc]
#5  0x00c4000e in CALayerRelease
#6  0x00c48dad in CALayerFreeTransaction
#7  0x00c410b8 in CA::Transaction::commit
#8  0x00c492e0 in CA::Transaction::observer_callback
#9  0x30245c32 in __CFRunLoopDoObservers
#10 0x3024503f in CFRunLoopRunSpecific
#11 0x30244628 in CFRunLoopRunInMode
#12 0x32044c31 in GSEventRunModal
#13 0x32044cf6 in GSEventRun
#14 0x309021ee in UIApplicationMain
#15 0x00001eb4 in main at main.m:14

Edit 2: ObjectAlloc

Wenn ich die betreffende Speicheradresse in ObjectAlloc nachschaue, finde ich zwei Übereinstimmungen:

#    Address     Category           Creation Time      Size Responsible Library Responsible Caller
0   0x1076980   GeneralBlock-48    00:11.470       48      QuartzCore  -[CALayer setDelegate:]
1   0x1076980   CALayer            00:11.552       48      UIKit       -[UIView _createLayerWithFrame:]

In # 0 GeneralBlock-48 graben:

#   Category        Event Type  Timestamp   Address Size    Responsible Library Responsible Caller
0   GeneralBlock-48 Malloc      00:11.470   0x1076980   48  QuartzCore  -[CALayer setDelegate:]
1   GeneralBlock-48 Free        00:11.551   0x1076980   -48 QuartzCore  -[CALayer addAnimation:forKey:]
2   CALayer         Malloc      00:11.552   0x1076980   48  UIKit   -[UIView _createLayerWithFrame:]

In # 1 CALayer graben:

#   Category        Event Type  Timestamp   Address    Size Responsible Library Responsible Caller
0   GeneralBlock-48 Malloc      00:11.470   0x1076980   48  QuartzCore  -[CALayer setDelegate:]
1   GeneralBlock-48 Free        00:11.551   0x1076980   -48 QuartzCore  -[CALayer addAnimation:forKey:]
2   CALayer         Malloc      00:11.552   0x1076980   48  UIKit   -[UIView _createLayerWithFrame:]

Nun, ich sehe jetzt, dass tieferes Bohren in # 0 oder # 1 genau die gleichen Informationen enthüllt. Ich nehme an, das sollte die Fehlerbehebung halbieren ... aber ich bin immer noch ratlos ...

Antworten auf die Frage(3)

Ihre Antwort auf die Frage