Я пытаюсь реализовать контактное приложение.NSOperationQueue .... нераспознанный селектор отправлен
В MyContactSViewController я пытаюсь получить доступ к Контакты, и если доступ будет предоставлен, я получаю контакты из моей адресной книги. ContactHandler
- это мой модельный класс (singleton), который имеет метод, называемый getAllContacts
, чтобы получить контакты в NSMutableArray.
- (void)viewDidLoad {
[super viewDidLoad];
contactHandler = [ContactHandler sharedInstance];
if(!self.accessGranted){
NSOperationQueue *queue =[[ NSOperationQueue alloc]init];
[queue performSelectorOnMainThread:@selector(getAccessToAddressBook) withObject:self waitUntilDone:YES];
contactList = [contactHandler getAllContacts];
}
else{
contactList = [contactHandler getAllContacts];
}
}
-(BOOL)getAccessToAddressBook{
CNContactStore * contactStore = [[CNContactStore alloc] init];
if([CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts] == CNAuthorizationStatusNotDetermined){
[contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
if(granted){
self.accessGranted = YES;
}
else{
self.accessGranted = NO;
}
}];
}
else if([CNContactStore authorizationStatusForEntityType:CNEntityTypeContacts]== CNAuthorizationStatusAuthorized){
self.accessGranted = YES;
}
else{
self.accessGranted = NO;
}
return self.accessGranted;
}
Но я получаю эту ошибку -
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSOperationQueue getAccessToAddressBook]: unrecognized selector sent to instance 0x137630700'
Может кто-нибудь пожалуйста, помогите.
'[очереди performSelectorOnMainThread: @selector (getAccessToAddressBook) withObject: self waitUntilDone: YES]; 'Что вы хотите сделать точно? Это линия, вызывающая проблему. – Larme
Нажав кнопку cmd + click, он переходит к методу? Также попробуйте waitUntilDone: NO – Hima
Я пытаюсь получить разрешение, прежде чем я заберу контакты. В принципе, я хочу вызвать метод getAllContacts после получения ответа от метода getAccessToAddressBook. – Natasha