2015-04-29 26 views
0

所以我就在幾個月到Objective-C和一直在寫一個相當簡單的程序,將提示firstNamelastName用戶,讓我們只說一個favoriteColor。然後通過輸出內容將這些用戶輸入存儲到.txt文件中。每次執行程序時,通過NSOutputStream類將人對象(帶有全名和最喜歡的顏色)添加到列表中的.txt文件中。覆蓋和商店數值增加的值在變

我想要做的是有一個順序票系統。所以,每次執行程序時,一個票號(可以調用這個變量topTicket爲清晰起見)被分配給新的人員對象和打印出來的名稱和顏色以及各種各樣的ID。

因此,讓第2次我跑我的項目後說,該文本文件包含以下內容:

FAVORITE COLOR INVENTORY 

Name: John Doe 
Favorite Color: Red 
Ticket: #031354 

Name: Jane Doe 
Favorite Color: Blue 
Ticket: #031355 

那我要票變量(topTicket)是下面下一次我打開我的項目文件:

topTicket = 031356 

我想知道如何讓程序在每次執行時覆蓋此初始值。因此,下次我在xCode中打開我的項目時,在當天早些時候運行它之後,topTicket現在將比以前多一個(031354,在這種情況下爲),自增並覆蓋之前的值。這樣,我所要做的就是在每次寫入.txt文件時調用這個topTicket變量,而不需要用戶輸入。

我希望我有道理。我會喜歡任何建議或指導,我應該如何去做這件事。 ...也許我正在推翻一些哈哈。

回答

1

完成該操作的一種方法是使用NSUserDefaults。您可以使用-setInteger:forKey:存儲值,並使用-intergerForKey:讀取值。示例代碼:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
NSInteger ticketNumber = [defaults integerForKey:@"lastTicketNumber"]; 
ticketNumber++; 
// use it 
[defaults setInteger:ticketNumber forKey:@"lastTicketNumber"]; 

我認爲您的項目中的某一點要保存所有數據,包括用戶數據。在這種情況下,您應該將票號存儲在一個地方,在那裏存儲其他數據,不管它是什麼。這是爲了保持數據一致。

+0

謝謝你,我花了一個小時左右的時間才真正掌握了整個概念,但現在它工作得很好! – James

+0

@James請將A標記爲正確,以便其他人更容易。 –