Прослушивание всех CFNotifications? - PullRequest
3 голосов
/ 19 октября 2010

Я пишу небольшую тестовую программу, в которой я могу просмотреть все публикуемые уведомления о различных действиях на устройствах iOS. К сожалению, я столкнулся с проблемой, когда я получаю ошибку EXC_BAD_ACCESS, когда я даже пытаюсь добавить наблюдателя в центр уведомлений Дарвина. Соответствующий код ниже:

void callback(CFNotificationCenterRef center, void *observer, CFStringRef name, const void *object, CFDictionaryRef userInfo) {  
    NSNotification* n = [NSNotification notificationWithName:name object:object userInfo:userInfo];

    objc_msgSend(gSelf, sel_getUid(@"note:"), n);
    return;  
}  


- (void)viewDidLoad {
    [super viewDidLoad];
    gSelf = self;
    notifications = [[NSMutableArray alloc] initWithCapacity:10];
    self.title = @"Notification Log";

    CFNotificationCenterAddObserver(  
                                    CFNotificationCenterGetDarwinNotifyCenter(), //center  
                                    NULL, // observer  
                                    callback, // callback  
                                    NULL, // name  
                                    NULL, // object  
                                    CFNotificationSuspensionBehaviorHold  
                                    );   
}

-(void)note:(NSNotification *)notification{

    @synchronized(self){
        [notifications addObject:notification];
        [self.tableView reloadData];
    }
}

1 Ответ

4 голосов
/ 19 октября 2010

Из CFNotificationCenter.h: (ищите определение CFNotificationCenterGetDarwinNotifyCenter.) Или ссылка CFNotificationCenter

CFNotificationCenterAddObserver (): аргумент 'name' не может бытьNULL (для этого центра).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...