2009-12-29 35 views
0

我已經查看了SDK文檔以及其他已經被問到的問題,而且我仍然對如何完全做到這一點感到困惑。我以前一直在使用下面的代碼,儘管它沒有給出.plist文件的預期結果。除了在.m文件的代碼中的頭文件中提到IBAction,還有什麼需要添加的或者我應該採用的其他方法嗎?謝謝!iPhone SDK:如何正確保存用戶輸入的信息到.plist或其他文件?

我的代碼:

- (IBAction)fedDog { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *path = [documentsDirectory stringByAppendingPathComponent:@"dogsFedDays.plist"]; 
    NSMutableArray *dogsFedSave = [NSMutableArray arrayWithCapacity: 100]; 
    for (int i = 0; i < 100; i++) { 
     NSDictionary *myDict = [[NSDictionary alloc] initWithObjectsAndKeys: 
                 date[i], @"string", 
                 fed[i], @"Yes", 
                 nil]; 
     [dogsFedSave addObject:myDict]; 
     [myDict release]; 
    } 
    if (![dogsFedSave writeToFile:path atomically:YES]) 
     NSLog(@"not successful in completing this task"); 
} 

回答

1

我假設-writeToFile正在返回NO所以你看到你的NSLog聲明(糾正我,如果我錯了)。如果是這種情況,那麼問題一定是日期數組或fed數組中的某個對象不是屬性列表的任何允許的對象類型,其中包括:NSString,NSData,NSArray或NSDictionary。 NSNulls是不允許的。從文檔用於將writeToFile:

這種方法遞歸地驗證了 所有包含的對象是寫出來的 文件前財產 列表對象,因爲返回NO如果所有 對象不是屬性列表對象, 結果文件不會是 有效的屬性列表。

相關問題