源路径为 nil,但 plist 位于捆绑资源中



>我收到"源路径为零"错误,但应该位于源路径的 plist 在捆绑资源中。

法典:

{NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = paths[0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"gHaiku413.plist"];
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path]) {
    NSString *bundle = [[NSBundle mainBundle] pathForResource:@"gHaiku413" ofType:@"plist"];
            NSLog(@"%@",bundle);
    [fileManager copyItemAtPath:bundle toPath: path error:&error];
}

当我转到构建阶段并查看复制捆绑资源时,gHaiku413.plist 肯定在那里,但我得到的结果是:

//This is the output of NSLog(@"%@",bundle):
2013-09-18 16:49:22.728 GHaiku[39389:a0b] (null)
2013-09-18 16:49:22.733 GHaiku[39389:a0b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSFileManager copyItemAtPath:toPath:error:]: source path is nil'

我错过了什么?

不确定这只是您问题中的错别字,还是实际问题,但[[NSBundle mainBundle] pathForResource:@"gHaiku413" ofType:@"plist"];寻找gHaiku413.plist,您说文件gHaiku.plist肯定在那里。这些是不同的文件名。

更新:在评论中讨论后,结果是这样的:

  1. 尝试一个非常干净的构建:cmd ⌘+alt ⌥+Shift ⇧+K,如果失败,一个超级干净的构建:
    • 关闭 Xcode
    • 删除xcuserdata目录:MyProject.xcodeproj/xcuserdataMyProject.xcodeproj/project.xcworkspace/xcuserdata
    • 删除~/Library/Developer/Xcode/DerivedData目录
    • 重新启动 Xcode
  2. 重置模拟器中的内容和设置

最新更新