0

/var/mobile/Applications/.../Documents ディレクトリに書き込めるようにする必要があるアプリがあります。これは正常に機能していましたが、何らかの理由でコード NSFileManager createFileAtPath を実行すると毎回 NO が返されます。なぜこれが起こっているのかわかりません、他の誰かがいますか?誤ってターゲット設定を変更したのではないかと思っています...

どんな助けでも大歓迎です、

ロビン

注: これは、書き込もうとするデータ (NSString、NSDictionary など) に対して発生します。

NSDictionary *dataToWrite = [[NSDictionary alloc] initWithObjectsAndKeys:@"1234", @"id", @"hfjk", @"password",nil]; 
NSArray *arrayPaths = NSSearchPathForDirectoriesInDomains(

                                                          NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDirectory = [arrayPaths objectAtIndex:0];
filePath = [docDirectory stringByAppendingString:@"/sample-file-name"];
NSFileManager *fileMgr;
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:dataToWrite forKey:@"any-key"];
[archiver finishEncoding];

BOOL status = [fileMgr createFileAtPath:path contents:data attributes:nil];
if (status)
    NSLog(@"Created file at path: %@",path);
else
    NSLog(@"Failed to create file at path: %@",path);
4

1 に答える 1

0

書く代わりに、

filePath = [docDirectory stringByAppendingString:@"/sample-file-name"];

これで確認してください

filePath = [docDirectory stringByAppendingPathComponent:@"sample-file-name"];

NSFileManager クラスリファレンスを確認してください

于 2012-06-20T17:37:44.613 に答える