【发布时间】:2014-09-22 12:07:20
【问题描述】:
我尝试使用- (NSURL *)containerURLForSecurityApplicationGroupIdentifier:(NSString *)groupIdentifier 在 iOS 8 b4 上的容器应用和扩展程序之间保存/加载文件。
代码如下:
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:groupID];
containerURL = [containerURL URLByAppendingPathComponent:[NSString stringWithFormat:@"Library/Caches/test.txt"]];
NSString* string = @"hihihihihi";
NSError* error;
[string writeToURL:containerURL atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSLog(@"%@",error);
我将此代码放在扩展程序(自定义键盘)和容器应用程序中。 当我在 iOS Simulator 上运行它时,它们都可以成功保存文件。但是在 iOS 设备上,扩展程序无法保存文件(而容器应用程序仍然可以)
扩展程序尝试保存文件时,控制台显示可可错误 513。
2014-07-31 01:37:49.316 TestExtention[2359:288820] 错误域=NSCocoaErrorDomain 代码=513“操作无法完成。(Cocoa 错误 513。)”UserInfo=0x15df2100 {NSFilePath=/private /var/mobile/Containers/Shared/AppGroup/4FA2DA5E-89C3-4BC3-AA5B-DD869827C5E7/Library/Caches/test.txt, NSUnderlyingError=0x15df1d90 "无法完成操作。不允许操作"}
这是 iOS 8 扩展的限制吗?
【问题讨论】:
标签: objective-c iphone sandbox ios8 ios-app-group