Hit*_*dra 5 nsurl nsfilemanager ipad ios ios7
我正在制作两个与一个文件通信的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>
Run Code Online (Sandbox Code Playgroud)
在Code中我写这个
NSFileManager* fileManager = [NSFileManager defaultManager];
NSURL* storeUrl = [fileManager
containerURLForSecurityApplicationGroupIdentifier:@"com.xxx.catalogapp.Coredata"];
NSLog(@"%@", storeUrl);
Run Code Online (Sandbox Code Playgroud)
但是storeUrl我正在获得nil价值.
小智 5
Xcode6(目前处于测试阶段)强制共享文件夹ID以"group"开头.
共享我的CoreData商店适合我使用以下URL,Xcode6/iOS8都是beta.
NSFileManager* fileManager = [NSFileManager defaultManager];
NSURL* storeUrl = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"group.XXX"];
Run Code Online (Sandbox Code Playgroud)
一旦Xcode6发布,似乎stevesliva链接的文档将被淘汰
好吧,我用自己的代码验证了它。团队标识符显示在 Library/Group Containers 的子目录中,因此您实际上需要将其包含在代码中:
\n\nNSFileManager* fileManager = [NSFileManager defaultManager];\nNSURL* storeUrl = [fileManager containerURLForSecurityApplicationGroupIdentifier:@"YOURTEAMID.com.xxxxxxxxxxx.catalogapp.Coredata"];\nNSLog(@"%@", storeUrl);\nRun Code Online (Sandbox Code Playgroud)\n\n我不确定的是,这是否是一个必需的名称(它对用户不太友好),或者是否是苹果推荐的名称,以使其变得超级独特。
\n\n正如上面评论中提到的,这是从 Apple 的应用程序沙箱设计指南 - 应用程序组容器目录开始解决的:
\n\n这些组容器会根据这些键的存在而自动添加到每个 app\xe2\x80\x99s 沙箱容器中,并存储在 ~/Library/Group Containers/ 中,其中 是组的名称。组名称本身必须以您的开发团队 ID 开头,后跟句点。\n
| 归档时间: |
|
| 查看次数: |
7170 次 |
| 最近记录: |