2012-05-03 45 views
1

我運行下面的代碼與有效的字典,仍然可以得到「不寫」:的NSDictionary將writeToFile不寫

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需要更多的內容來解釋代碼,但我認爲這很容易看到發生了什麼,如果您有任何問題,請評論!

+0

請不要將用戶名和密碼憑據存儲在文件中,這是鑰匙串的用途。 – danielbeard

+0

它是用於調試的東西。這不是生產代碼。 –

+0

是丹尼爾,請冷靜一下,您的個人信息不會被盜 –

回答

0

看看這個問題write to file fails。我有一些問題,但檢查了我的字典中的所有數據類型後發現錯誤。