我正在制作两个iPad应用程序,它们与一个文件进行通信并从一个文件中获取所有数据。我搜索并找到了这个“containerURLForSecurityApplicationGroupIdentifier”,我们可以在其中创建组并进行存储。我在下面写了代码。在授权文件中,我写

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.app-sandbox</key>
       <true/>
     <key>com.apple.security.application-groups</key>
     <array>
        <string>$(TeamIdentifierPrefix)com.xxx.catalogapp.Coredata</string>
     </array>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)com.xxx.catalogapp.Coredata</string>
    </array>
</dict>
</plist>

用代码我写这个
NSFileManager* fileManager = [NSFileManager defaultManager];
NSURL* storeUrl = [fileManager
containerURLForSecurityApplicationGroupIdentifier:@"com.xxx.catalogapp.Coredata"];
NSLog(@"%@", storeUrl);

但是storeUrl我正在获得nil值。

最佳答案

Xcode6(当前处于beta版)将强制共享文件夹ID以“group”开头。

在Xcode6/iOS8两个Beta中,使用以下URL共享我的CoreData存储对我来说都是有效的。

NSFileManager* fileManager = [NSFileManager defaultManager];
NSURL* storeUrl = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.XXX"];

一旦Xcode6发布,似乎与stevesliva链接的文档将被淘汰。

10-08 07:49