2011-02-25 39 views
4

我一直在搜索如何保存我的應用程序數據。我發現了一些東西,但它非常複雜並且解釋不好。我需要當我完全關閉應用程序時,我在文本字段中輸入的所有數據仍然存在,當我再次打開我的應用程序時。我嘗試了一個教程,但這隻能讓我保存大約8個文本框,並且我需要保存數千個啓動Objective-C和Xcode,所以如果有人想給我一個答案,請使它非常精確。如何保存應用程序數據Xcode

+1

數以千計的文本字段?你是認真的嗎?我會改變應用程序的設計。 –

回答

5

好的,我建議將文本字段中的所有數據放入數組中,並將其保存到文件中,然後在重新打開應用程序時加載它。

您需要的第一件事是保存文件。該功能將爲您創建一個。

-(NSString*) saveFilePath{ 
NSString* path = [NSString stringWithFormat:@"%@%@", 
        [[NSBundle mainBundle] resourcePath], 
        @"myfilename.plist"]; 
return path;} 

現在你已經完成了,你需要創建你的保存數組。希望你有成千上萬的文本字段已經裝入了某種數組中。如果不是這樣,無論你如何處理它,這將是一個痛苦的過程。但無論如何...(這裏,labelArray將所有的文本字段/標籤的陣列的/ etc。)

NSMutableArray* myArray = [[NSMutableArray alloc]init]; 
int i = 0; 
while(i < labelArray.count){ 
    [myArray addObject: [labelArray objectAtIndex: i].text]; 
    i ++; 
} 
[myArray writeToFile:[self saveFilePath] atomically:YES]; 
[myArray release]; 

和加載代碼將沿

NSMutableArray* myArray = [[NSMutableArray arrayWithContentsOfFile:[self saveFilePath]]retain]; 

線的東西然後您只需將數據加載回您的文本字段數組。

希望這會有所幫助。 (!或讀取)

+0

非常感謝您的幫助。現在我想知道我在哪裏放這段代碼,如果我把這段代碼放到我的文件中,它會自動保存我所有的文本字段,或者我需要告訴他要保存哪些文本字段。我不知道陣列是什麼或如何製作陣列。我確實有成千上萬的文本字段,但它們被分成100個不同的.h和.m,所以如果有人能向我解釋那真是太棒了。謝謝 – proticsam

+3

@proticsam如果您創建了數以千計的文本字段,但是您仍然不知道數組是什麼,那麼您可能比維護應用狀態更具根本性問題。你有沒有嘗試過任何iPhone教程? – kubi

+0

kubi的權利,你應該看看一些iphone教程。無論如何,您需要將保存代碼放入每個.m文件的函數中(並使用一個帶有略微不同名稱的saveFilePath函數,以免覆蓋自己的東西)。然後,當函數被調用時,您的東西這個班級將被保存。加載代碼只會放在viewDidLoad文件中(對於視圖控制器,您需要爲自定義類創建一個新函數)。 – Nicholas1024

0

爲了讓你要寫路徑,您執行以下操作:

NSString *writableDBPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"MyFile.extension"];

,然後使用一個方法,如「將writeToFile:automically:」的NSString或NSDictionary等寫入路徑。

2

聽起來好像您的應用程序體系結構可能是不健全的,如果您打算在您的應用程序正在關閉時在您秒數的一小部分中保存數千個文本字段的數據。在用戶輸入數據時保存這些數據可能會更好,而不是等待一次保存所有數據。

相關問題