0

我的代码是这样的。而且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);
4

2 回答 2

2

资源路径是指应用程序包中的 Resources/ 目录。您不想写入此路径,这通常是不允许的(尤其是在沙盒应用程序的情况下)。

要获取标准位置的路径,例如应用程序支持目录,请使用NSSearchPathForDirectoriesInDomains

您可能正在寻找类似的东西:

NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);

这将返回一个(大小为 1 的数组)应用程序支持 URL,如果您的应用程序被沙盒化,则会自动选择正确的路径。

于 2012-04-20T14:38:42.033 回答
0

您无法写入当前应用的捆绑包。

相反,您可以将其填充到您的沙箱、in~/Library/Application Support/YOUR_APP/或用户指定的位置。

于 2012-04-20T14:35:55.483 回答