我的代码就是这个。并且ret的值始终为NO,我认为不允许写入路径。 但是我可以在我的应用程序中将我的信息存储在MAC OS X上?你能帮我找到存储我应用设置的正确途径吗?非常感谢〜:)
NSString* writePath = [[[NSBundle mainBundle] resourcePath]
stringByAppendingPathComponent:@"Brain.plist"];
NSLog(@"%@",writePath);
NSMutableDictionary* dictForRet = [[NSMutableDictionary alloc]init];
NSNumber* applicationNumber = [[NSNumber alloc]initWithInt:0];
NSMutableDictionary* root = [[NSMutableDictionary alloc]init];
NSArray* propertyArray = [[NSArray alloc]initWithObjects:kPropertyArrayApplicationPath,kPropertyArrayApplicationCS, nil];
NSMutableDictionary* brain = [[NSMutableDictionary alloc]init];
[root setObject:propertyArray forKey:kPropertyArrayName];
[dictForRet setObject:applicationNumber forKey:kPropertyKeyApplicationNumber];
[dictForRet setObject:root forKey:kPropertyArrayDictName];
[dictForRet setObject:brain forKey:kPropertyDictBrainName];
NSLog(@"%@",dictForRet);
ret = [dictForRet writeToFile:writePath atomically:YES];
NSLog(@"%d",ret);
答案 0 :(得分:2)
资源路径是指应用包中的Resources /目录。您不希望写入此路径,这通常是不允许的(特别是在沙盒应用程序的情况下)。
要获取标准位置的路径,例如Application Support目录,请使用NSSearchPathForDirectoriesInDomains。
你可能正在寻找类似的东西:
NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
这将返回一个(大小为1的数组)应用程序支持URL,如果您的应用程序是沙盒,则会自动选择正确的路径。
答案 1 :(得分:0)
您无法写入当前应用的捆绑包。
相反,您可以将其填入沙箱,~/Library/Application Support/YOUR_APP/
或用户指定的位置。