我尝试使用- (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 TestExtension [2359:288820]错误域= NSCocoaErrorDomain代码= 513“操作无法完成。(可可错误513。)” UserInfo = 0x15df2100 {NSFilePath = / private / var / mobile / Containers / Shared / AppGroup / 4FA2DA5E-89C3-4BC3-AA5B-DD869827C5E7 / Library / Caches / test.txt,NSUnderlyingError = 0x15df1d90“操作无法完成。不允许操作”}
这是iOS 8扩展的限制吗?
键盘扩展还有另一个限制。您应该在Info.plist中设置RequestsOpenAccess
为YES
,然后它才能访问文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句