gpt4 book ai didi

ios - NSOperationQueue ....发送了无法识别的选择器

转载 作者:行者123 更新时间:2023-11-29 01:15:38 25 4
gpt4 key购买 nike

我正在尝试实现一个联系人应用程序。

在 MyContactsViewController 中,我正在尝试访问联系人,如果访问被授予,我将从我的地址簿中获取联系人。 ContactHandler 是我的模型类(单例),它有一个名为 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'

任何人都可以帮忙吗?

最佳答案

你的问题是这一行:

[queue performSelectorOnMainThread:@selector(getAccessToAddressBook) withObject:self waitUntilDone:YES];

self 拥有此选择器时,您要求 queue 执行 getAccessToAddressBook

如果你想在队列上运行方法getAccessToAddressBook,你可以使用- addOperationWithBlock:

关于ios - NSOperationQueue ....发送了无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35222375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com