3

私は変更しているplistを持っています:

NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.plist"];
NSMutableDictionary *keyFrameFileByMovie = [[NSMutableDictionary alloc] initWithContentsOfFile:finalPath];
[keyFrameFileByMovie setValue:keyFrameName forKey:movieName];
BOOL isOk = [keyFrameFileByMovie writeToFile:finalPath atomically:YES];

シミュレータではisOkは1で、デバイスではisOKは0です。

私は動作する取得コードを持っているので、それはケースセンシティブな問題ではないと思います:

NSString *finalPath = [path stringByAppendingPathComponent:@"KeyFrameFileByMovie.plist"];<br>
NSDictionary *plistData =[[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];

デバイスでwriteToFileが失敗するのはなぜですか?

4

4 に答える 4

6

iPhone アプリケーションのディレクトリ構造は非常に厳密です。残念ながら、デバイスとシミュレーターの権限は異なります。したがって、ここでの唯一の問題は、Documents ディレクトリではなく MainBundle ディレクトリに保存していることです。

上記の例では、パスの値は何ですか?

于 2010-01-06T11:57:48.820 に答える
4

あなたが最初に始めた道は何ですか?iPhone では大文字と小文字が区別されますが、Mac では (通常) 区別されないため、つまずく可能性があります。どちらの場合も finalPath をログに記録し、それらが同じであることを視覚的に確認します。

于 2010-01-06T00:50:12.657 に答える
3

文字列を追加するときに「/」を追加します

NSString *finalPath = [path stringByAppendingPathComponent:@"/KeyFrameFileByMovie.plist"];
于 2011-10-30T06:56:18.673 に答える
0
NSString *applicationDocumentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *storePath = [applicationDocumentsDir stringByAppendingPathComponent:@"default.txt"];
NSString *stringFilepath = [docPath stringByAppendingPathComponent:@"configlocaljson.json"];[replacedString writeToFile:stringFilepath atomically:YES encoding:NSUTF8StringEncoding error:nil];
NSError * error = nil;
BOOL success = [replacedString writeToFile:stringFilepath atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSLog(@"Success = %d, error = %@", success, error);

私にとってはその仕事です。

于 2013-12-26T08:21:36.067 に答える