我正在与一个团队一起开发,使用所有图像完全相同的 mac。使用我编写代码的机器,我可以以编程方式创建然后写入 pList 文件。但是当我使用我的家用机器(相同的图像)或当我的队友在他们的机器上测试代码时,我们会因[NSFileManager copyItemAtPath:toPath:error:]: source path is nil'错误而崩溃。在调试中,文件路径是有效的。但是,该捆绑包位于:
NSString *bundle = [[NSBundle mainBundle]pathForResource:@"Family" ofType:@"plist"];
[pListfileMgr copyItemAtPath:bundle toPath: pListpath error:&error];
是零。我们正在使用 git 对我们的代码进行版本控制。我们一直将 .DS_Store 和 /userdata/ 文件排除在存储库之外,除非我错过了什么。到底是怎么回事?这是代码,几乎从这里逐字复制:
NSError *error;
NSArray *pListpaths =NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *pListdocumentsDirectory = [pListpaths objectAtIndex:0];
NSString *pListpath = [pListdocumentsDirectory stringByAppendingPathComponent:@"Family.plist"];
NSFileManager *pListfileMgr = [NSFileManager defaultManager];
//Create a plist if it doesn't alread exist
if (![pListfileMgr fileExistsAtPath: pListpath])
{
NSString *bundle = [[NSBundle mainBundle]pathForResource:@"Family" ofType:@"plist"];
[pListfileMgr copyItemAtPath:bundle toPath: pListpath error:&error];
}
NSMutableDictionary *thePList = [[NSMutableDictionary alloc] initWithContentsOfFile: pListpath];
[thePList setObject:[NSString stringWithFormat:@"%@", numberOfPeopleInFamilyOfOrigin] forKey:@"famSize"];
[thePList writeToFile: pListpath atomically: YES];