У меня происходит сбой в моем подклассе CALayer, когда я удаляю себя как наблюдателя в - (void) dealloc:
- (void)dealloc {
[[NSUserDefaults standardUserDefaults] removeObserver:self forKeyPath:@"showColorLabels"];
[colorLabel release];
[_color release];
[super dealloc];
}
Исключение выдается.Это говорит о том, что я не был добавлен в качестве наблюдателя.Это происходит только в определенном случае, после вызова [CATransaction flush].
Я использовал Инструменты, чтобы увидеть, когда объект был выделен.Он говорит, что он был выделен с помощью вызова CALayerGetPresentationLayer ().Я не уверен, как это работает, но я думаю, что это копия моего исходного слоя, поэтому init никогда не вызывался, и меня никогда не добавляли в качестве наблюдателя.
Как я могу проверить, что я -Наблюдатель, прежде чем удалить себя, или, может быть, сказать, если я слой презентации?
Бриджер Максвелл