Если вы хотите регистрировать сообщения, отправленные из кода вашего приложения, -forwardingTargetForSelector: tip является частью решения.
Оберните ваш объект:
@interface Interceptor : NSObject
@property (nonatomic, retain) id interceptedTarget;
@end
@implementation Interceptor
@synthesize interceptedTarget=_interceptedTarget;
- (void)dealloc {
[_interceptedTarget release];
[super dealloc];
}
- (id)forwardingTargetForSelector:(SEL)aSelector {
NSLog(@"Intercepting %@", NSStringFromSelector(aSelector));
return self.interceptedTarget;
}
@end
Теперь сделайте что-то вроде этого:
Interceptor *i = [[[Interceptor alloc] init] autorelease];
NSFetchedResultsController *controller = [self setupFetchedResultsController];
i.interceptedTarget = controller;
controller = (NSFetchedResultsController *)i;
и у вас будет журнал отправки сообщений. Обратите внимание, что посылки, отправленные из перехваченного объекта, не будут перехвачены, поскольку они будут отправлены с использованием исходного указателя «self» объекта.