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/ ディレクトリを参照します。通常は許可されていません (特にサンドボックス化されたアプリの場合)。

Application Support ディレクトリなどの標準的な場所へのパスを取得するには、NSSearchPathForDirectoriesInDomainsを使用します。

あなたはおそらく次のようなものを探しています:

NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);

これは (サイズ 1 の配列) アプリケーション サポート URL を返し、アプリがサンドボックス化されている場合は正しいパスを自動的に選択します。

于 2012-04-20T14:38:42.033 に答える
0

現在のアプリのバンドルに書き込むことはできません。

~/Library/Application Support/YOUR_APP/代わりに、サンドボックス、 、またはユーザー指定の場所に入れることができます。

于 2012-04-20T14:35:55.483 に答える