1

このコードを試すと:

if ([[NSFileManager defaultManager] fileExistsAtPath:@"~/Library/Application Support/Staying Afloat/stats/static-stats.plist"] == NO) {
    NSMutableDictionary* tempDict = [[NSMutableDictionary alloc]initWithObjectsAndKeys:
                                     [[NSString alloc] initWithString:@"0"],@"completedGames",
                                     [[NSString alloc] initWithString:@"0"],@"floatsCollected",
                                     [[NSString alloc] initWithString:@"0"],@"sec",
                                     [[NSString alloc] initWithString:@"0"],@"subScore",
                                     [[NSString alloc] initWithString:@"0"],@"highScore",
                                     [[NSString alloc] initWithString:@"0"],@"longestSec", nil];

    [tempDict writeToFile:@"~/Library/Application Support/Staying Afloat/stats/static-stats.plist" atomically:YES];

    NSLog(@"written file");

}

そして、これは

2012-04-14 19:15:10.009 Staying Afloat[3227:9c07] written file

ループは実行されましたが、ファイルは書き込まれていませんか? plistをローカライズされていない場所に保存するために、誰かが正しい方向に私を向けることができますか?

編集:これはMac用です

4

4 に答える 4

6

書き込み時に使用してパスを展開し-(NSString *)stringByExpandingTildeInPath、ファイルが存在するかどうかを確認する必要があります。

編集:writeToFile:automatically NSDictionary ドキュメントのメソッドを読んでください。それは言う

path にチルダ (~) 文字が含まれている場合は、このメソッドを呼び出す前に stringByExpandingTildeInPath で展開する必要があります。

だから、次のようなことをしてください

[tempDict writeToFile:[[NSString stringWithString:@"~/Library/Application Support/Staying Afloat/stats/static-stats.plist"] stringByExpandingTildeInPath] atomically:YES];
于 2012-04-14T07:38:13.313 に答える
1

まず、次のように書くことはできません:

[tempDict writeToFile:@"~/Library/Application Support/Staying Afloat/stats/static-stats.plist" atomically:YES];

NSLog(@"written file");

ファイルが本当に成功して書き込まれたかどうかを確認しないためです。

あなたは書くべきです:

if([tempDict writeToFile:@"~/Library/Application Support/Staying Afloat/stats/static-stats.plist" atomically:YES]) {
    NSLog(@"written file");
} else {
    NSLog(@"file not written");
}

WriteToFile メソッドはブール値を返します。

于 2012-04-14T07:40:50.547 に答える
0

-writeToFile:atomically:返品してもよろしいですかYES

于 2012-04-14T08:16:44.463 に答える
0

私は常に NSUserDefaults を使用しています。これは、ユーザー設定や実行中のアプリの状態の保存など、すべてを処理してくれます。私の頭の中で、あなたは plist を書くための適切な権限を持っていないことをお勧めします.OS の重要なキーと値を誤って破壊した場合はどうなりますか? 見て

iPhone MVC アプリでユーザー設定を処理するためのベスト プラクティスは?

于 2012-04-14T07:46:57.637 に答える