Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.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
Ios 设备上未显示联系人_Ios_Iphone_Swift - Fatal编程技术网

Ios 设备上未显示联系人

Ios 设备上未显示联系人,ios,iphone,swift,Ios,Iphone,Swift,大家好,我在获取用户联系人时遇到问题。我为此编写了一些代码,它在模拟器中运行良好,可以显示用户名和数字。现在,当我在设备上进行测试时,没有显示任何内容。请查看我的代码这有什么问题 #import <AddressBookUI/AddressBookUI.h> #import <Contacts/Contacts.h> 它在模拟器中工作正常,但在我的设备上不工作。请帮助。简短回答:不 详细回答:不,iOS上的所有应用程序都在沙箱中运行,这意味着它们只能访问自己“工作区”中

大家好,我在获取用户联系人时遇到问题。我为此编写了一些代码,它在模拟器中运行良好,可以显示用户名和数字。现在,当我在设备上进行测试时,没有显示任何内容。请查看我的代码这有什么问题

#import <AddressBookUI/AddressBookUI.h>
#import <Contacts/Contacts.h>
它在模拟器中工作正常,但在我的设备上不工作。请帮助。

简短回答:不

详细回答:不,iOS上的所有应用程序都在沙箱中运行,这意味着它们只能访问自己“工作区”中的文件和文件夹。iOS 8带来了共享容器,应用程序可以使用这些容器在它们之间共享文档和文件,但这只适用于同一“应用程序组”中的应用程序,通常是一个应用程序及其扩展名。这意味着您无法访问其他应用程序的文件,除非它们通过共享扩展名显式提供给您。由于此扩展是根据用户请求调用的,因此应用程序无法在后台传递这些文件,而且在卸载时也不能。卸载应用程序时,iOS会自动提示用户文档/数据将丢失,但网络存储的数据/文档可能仍然可用

有关文件系统沙盒的详细信息:


iOS8文档提供程序--这是一个用户启动的过程。

您无法访问自己应用程序之外的文件。谢谢您的快速回复。这可以在ios 8中实现吗?swift实现了用于图像、视频或一些音频文件等基本用途的扩展。理论上是的。但是上面的回答中提到了一些限制,再次感谢你的简单和简短的回答
    CNContactStore *store = [[CNContactStore alloc] init];
[store requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError * _Nullable error) {
    if (granted == YES) {
        //keys with fetching properties
        NSArray *keys = @[CNContactFamilyNameKey, CNContactGivenNameKey, CNContactPhoneNumbersKey, CNContactImageDataKey];
        NSString *containerId = store.defaultContainerIdentifier;
        NSPredicate *predicate = [CNContact predicateForContactsInContainerWithIdentifier:containerId];
        NSError *error;
        NSArray *cnContacts = [store unifiedContactsMatchingPredicate:predicate keysToFetch:keys error:&error];
        if (error) {
            NSLog(@"error fetching contacts %@", error);
        } else {
            for (CNContact *contact in cnContacts) {

                NSLog(@"print contacts %@",contact.givenName);

                for (CNLabeledValue *label in contact.phoneNumbers) {
                    NSString *phone = [label.value stringValue];
                    if ([phone length] > 0) {

                        NSLog(@"Print Phone no %@",phone);

                    }
                }
            }
        }
    }
}];