【发布时间】:2015-06-08 21:54:12
【问题描述】:
我正在向我的应用添加一个应用组,以便在应用和手表之间共享一个 plist。当应用程序首次启动时,我曾经将一个 plist 从包复制到 Documents。但是对于手表,我现在正试图将其转换为保存到容器中,但它似乎总是空的。目标启用了应用程序组,我在代码中使用了正确的名称。可能出了什么问题?
老路
// COPY PLIST TO DOCUMENTS
NSFileManager *fileManger=[NSFileManager defaultManager];
NSError *error;
NSArray *pathsArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);
NSString *doumentDirectoryPath=[pathsArray objectAtIndex:0];
NSString *destinationPath= [doumentDirectoryPath stringByAppendingPathComponent:@"badger.com.vacations.plist"];
NSLog(@"plist path %@",destinationPath);
if (![fileManger fileExistsAtPath:destinationPath]){
NSString *sourcePath=[[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"badger.com.vacations.plist"];
[fileManger copyItemAtPath:sourcePath toPath:destinationPath error:&error];
}
新方法 - 不起作用
// COPY PLIST TO CONTAINER
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.com.xxxxx.xxx.container"];
containerURL = [containerURL URLByAppendingPathComponent:@"name.com.data.plist"];
NSString *destinationPath= containerURL.path;
NSLog(@"destinationPath %@", containerURL);
NSString *sourcePath=[[[NSBundle mainBundle] resourcePath]stringByAppendingPathComponent:@"name.com.data.plist"];
[fileManger copyItemAtPath:sourcePath toPath:containerURL.path error:&error];
【问题讨论】:
-
stk 的回答很好,但我看不出有什么理由不能直接使用 plist 文件。到底发生了什么?没有写入文件?写入一个空文件?
error中有什么内容吗?
标签: plist nsfilemanager watchkit apple-watch ios-app-group