- (void) readTheFile{
NSError *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *path = [self getTheFilePath];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"setting" ofType:@"plist"];
[fileManager copyItemAtPath:bundle toPath: path error:&error];
}
}
- (NSString *)getTheFilePath{
NSURL *url = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"com.group.test"];
NSString *path = [url.absoluteString stringByAppendingPathComponent:@"setting.plist"];
path = [path stringByReplacingOccurrencesOfString:@"file:" withString:@""];
return path;
}
大家好,我有一个混乱的问题 我在一个项目中有两个目标,一个是扩展目标 所以我想在两个目标中共享一些plist文件。所以我成功地为两个目标创建了组内的App App 我的想法是我在一个目标中创建了plist文件,而其他扩展应用程序需要检查相同的位置(上面的代码)并检查文件是否存在。如果不存在,请创建新的plist文件 我在模拟器上测试了一切都很好 但是当我在设备上运行时,所有奇怪的事情都会出现 当我读取文件时,getTheFilePath会给出正确的路径,但是当我检查文件是否存在时。它显示NO。 但实际上我已经从第一个目标创建了文件 所以程序继续并从Bundle复制文件并粘贴到路径中 但是我得到了关于文件已经存在的错误。
Error Domain=NSCocoaErrorDomain Code=516 "The operation couldn’t be completed. (Cocoa error 516.)"
"The operation couldn’t be completed. File exists"
有时会自动重启设备。为什么?
请帮助我,我使用xCode 6测试版并在iOS8 iPhone5s上测试
答案 0 :(得分:0)
我最近一直在研究应用程序组,特别是iOS 8即将推出,现在已经遇到过这个问题了几次。事实证明,这是Xcode当前测试版中的一个错误。我相信你现在已经知道了,但是对于那些没有更新但仍然遇到同样问题的人来说应该解决它。
答案 1 :(得分:0)
您要检索的网址如下所示:file:///var/mobile/Containers/...
所以也许你应该尝试使用这样的东西,这对我有用:
NSString *path = [url.absoluteString stringByReplacingOccurrencesOfString:@"file://" withString:@""];