1

有効な辞書を使用して次のコードを実行しても、「書き込まれていません」と表示されます。

 NSFileManager* fm = [[NSFileManager alloc] init];
 __autoreleasing NSError* err = nil;

 NSURL* DD = [fm URLForDirectory:NSDocumentDirectory inDomain:NSUserDomainMask appropriateForURL:nil create:YES error:&err];
 if (!err) {
     NSString* debugPath = [[DD path] stringByAppendingPathComponent:@"debug.plist"];

     NSLog(@"login-signup write that file!");
     NSDictionary* remMe = [NSDictionary dictionaryWithObjectsAndKeys:[userJSON objectForKey:kRememberMeToken],kRememberMeToken,[userJSON objectForKey:@"id"],@"id",nil];

     NSMutableDictionary* toStore = [NSMutableDictionary dictionaryWithDictionary:dict];
     [toStore setObject:Password.text forKey:kPassword];
     NSMutableDictionary* toStoreTwo = nil;
     if([fm fileExistsAtPath:debugPath]){
           toStoreTwo = [NSMutableDictionary dictionaryWithContentsOfFile:debugPath];
           [toStoreTwo setObject:[toStore copy] forKey:@"signup"];
           [toStoreTwo setObject:remMe forKey:@"login"];
     }
     else{
           toStoreTwo = [NSMutableDictionary dictionaryWithObject:[toStore copy] forKey:@"signup"];
           [toStoreTwo setObject:remMe forKey:@"login"];
     }

     NSDictionary* sDict = [NSDictionary dictionaryWithObject:toStoreTwo forKey:[NSString stringWithFormat:@"signup-debug-%@",[NSDate date]]];

     NSLog(@"saving %@ to file",sDict);
     BOOL success = [sDict writeToFile:debugPath atomically:NO];
     if(!success){
            NSLog(@"not written");
     }
     else{
            NSLog(@"written");
     }
   }

どんな助けでも素晴らしいでしょう!

Stackoverflow はコードを説明するためにより多くのコンテンツを必要としますが、何が起こっているのかを理解するのは非常に簡単だと思います。質問があればコメントしてください!

4

1 に答える 1

0

この質問write to file fails を見てください。いくつか問題がありますが、辞書のすべてのデータ型を確認したところ、間違っていることがわかりました。

于 2012-07-03T05:45:17.217 に答える