-1
對於顯而易見的問題,我很抱歉,但在寫數據到文件時應該注意些什麼,因爲我的程序可以在程序運行時讀取它剛剛寫入的數據,但是當我停止它時,這些文件已空如何將cocoa/xcode中的文本/數據保存到文件中?
使用NSFileHandle,爲了與後來寫入數據,並關閉文件試過了,沒有幫助......目前,我使用:
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:newArray];
[encodedObject writeToFile:string atomically:YES];
,無不管我做什麼,我無法得到最簡單的NSString永久保留在文件中
我該怎麼辦?
感謝@LetzFlow,但它還沒有解決它。現在
,我使用:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
string = [NSString stringWithFormat:@"%d.rtf",fileName];
NSString *file = [documentsDirectory stringByAppendingPathComponent:string];
//NSFileHandle *fileHandle = [NSFileHandle fileHandleForWritingAtPath:file];
NSData *encodedObject = [NSKeyedArchiver archivedDataWithRootObject:newArray];
[encodedObject writeToFile:file atomically:YES];
//[fileHandle writeData:encodedObject];
//[fileHandle closeFile];
NSLog(@"%@",[NSString stringWithContentsOfFile:file encoding:NSStringEncodingConversionAllowLossy error:nil]);
序列化對象的數組,並且所述的NSLog顯示有效陣列。但是,當我稍後查看文件時,或者嘗試反序列化陣列(如下所示)時:(
NSString *stringX = [NSString stringWithFormat:@"%d.rtf",fileName];
NSData *encodedObjectX = [NSData dataWithContentsOfFile:stringX];
NSArray *newArrayX = [NSKeyedUnarchiver unarchiveObjectWithData:encodedObjectX];
TurnigButton *button = [[newArrayX objectAtIndex:1] objectAtIndex:5];
NSLog(@"%d", button.idNum);
它只是打印(空)。 (當他們在一次執行中一個接一個地執行時,它反序列化就好)
我很感激幫助。
試試這個:1.從模擬器運行,2.停止,3.檢查MAC地址上保存的文件是否存在。 – user523234 2012-07-07 19:18:26
嘗試過,不起作用...文件保持空白。 – user1508829 2012-07-08 14:34:45