Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Mac OS X 10.11的CNContact_Macos_Swift_Contacts_Addressbook - Fatal编程技术网

Macos Mac OS X 10.11的CNContact

Macos Mac OS X 10.11的CNContact,macos,swift,contacts,addressbook,Macos,Swift,Contacts,Addressbook,在OS X 10.11和iOS 9.0中,Apple提供了此框架联系人: 我想从Mac访问联系人,但我无能为力,因为该应用程序无法访问联系人: switch CNContactStore.authorizationStatusForEntityType(.Contacts) { case .Authorized: print("Authorized") NSUserDefaults.standardUserDefaults().setBool(true,

在OS X 10.11和iOS 9.0中,Apple提供了此框架联系人:

我想从Mac访问联系人,但我无能为力,因为该应用程序无法访问联系人:

switch CNContactStore.authorizationStatusForEntityType(.Contacts) {
    case .Authorized:
        print("Authorized")
        NSUserDefaults.standardUserDefaults().setBool(true, forKey: "contactsAllowed")
    case .Denied:
        print("Denied")
        NSUserDefaults.standardUserDefaults().setBool(false, forKey: "contactsAllowed")
    case .NotDetermined:
        print("Not Determined")
    case .Restricted:
        print("Restricted")
    }
应用程序从不提示允许访问联系人,我也不能在系统首选项中选择它(它不会显示)


有人知道如何在Mac上访问它们吗(在iOS上运行良好)?

任何对CNContactStore实例的调用都会触发请求。如果不尝试

  • 重新启动(实际上这对我有帮助;我被授予了访问权限)
  • 打开沙箱
  • 重置隐私设置“sudo tccutil重置通讯簿”
  • 在主线程上调用它
  • CNContactStore呼叫的实例:

    [[CNContactStore alloc] init];
    
    隐私权

    用户可以授予或拒绝访问每个应用程序上的联系人数据 基础。对CNContactStore的任何调用都将在 正在要求用户授予或拒绝访问权限。请注意,用户是 仅在第一次请求访问时提示;任何后续的 CNContactStore呼叫使用现有权限。避免 您的应用程序的UI主线程块用于此访问,您可以使用 异步方法[CNContactStore] requestAccessForEntityType:CNEntityTypeContacts completionHandler:]或 将您的CNContactStore使用情况发送到后台线程


    你是在操场上试这个吗?这行不通

    在项目中尝试此方法:

    func getContactImage(name:String) -> NSImage?
    {
        let store = CNContactStore()
        do
        {
            let contacts = try store.unifiedContactsMatchingPredicate(CNContact.predicateForContactsMatchingName(name), keysToFetch:[CNContactImageDataKey])
            if contacts.count > 0
            {
                if let image = contact[0].imageData
                {
                    return NSImage.init(data: image)
                }
            }
        }
        catch
        {
        }
    
        return nil
    }
    

    不管怎样,你的问题引导我找到了获取联系人图像的方法,谢谢你

    您是否尝试过
    -requestAccessForEntityType:completionHandler:
    ?是的,什么都没有发生……我遇到了同样的问题,只是忘记了在权限文件中将
    com.apple.security.personal information.addressbook
    键设置为true。嗨,没问题!;)我刚刚在10.11的新版本上试用了我的代码,现在可以使用了!所以这可能是测试版的问题。无论如何谢谢你的帮助!嗨,谢谢你的帮助!我刚刚在10.11的新版本上试用了我的代码,现在可以使用了!所以这可能是测试版的问题。问候语!