2011-11-29 101 views
0

我是新應用程序開發人員,我正在使用XCode 4.2目標C保存項目的歷史記錄

我正在創建讀取QR碼的應用程序。我希望能夠將字符串(NSString格式)以及可能的圖像保存在歷史記錄列表中,以便即使用戶關閉應用程序,掃描的QR碼的歷史記錄也能被恢復,我該怎麼做?

一個示例代碼可以理解

非常感謝

回答

0

對於持續字符串我會使用NSUserDefaults的。

NSString *QRString = stringFromQRCode; 
[[NSUserDefaults standardUserDefaults] QRString forKey:@"SomeKeyToReference"]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

這會將字符串存儲在NSUserDefaults中。稍後檢索:

NSString *retrivedQRString = [[NSUserDefaults standardUserDefaults] objectForKey:@"SomeKeyToReference"]; 

希望這會有所幫助。

+0

哦,我不會。 NSUserDefaults最適合設置值的小字典(並可能將其保存到iCloud中),而不是用於存儲應用程序數據。 –

+0

我同意@DanRay。 NSUserDefaults的目的是保存應用程序設置/偏好。不是應用數據。 – cocoahero

0

考慮在你的包中嵌入一個小型的SQLite數據庫,並使用一個使SQLite接口簡單的開源庫。這是可能變大的事情,並且您想要使用支持更多或更少任意數量數據的接口。

我的應用程序之一是每日提醒/肯定的事情,最簡單的方法是有一個日常內容的SQLite數據庫表。一旦我知道如何做一塊蛋糕。

下面是如何嵌入和使用SQLite教程的列表:http://mobileorchard.com/iphone-sqlite-tutorials-and-libraries/

+1

如果他想使用SQLite(在我看來這是過度的),那麼他應該使用核心數據。不是一些隨機的SQLite庫。 – cocoahero

+0

問題我想。我絕對認爲核心數據是過量的,但我認爲SQLite本身是輕量級且易於使用的。這是一個完美的用例,imo。 –

0

如果你想要做的是保存一系列的字符串,你可以用的NSArray和財產清單很輕鬆地完成。

例如,創建一個NSMutableArray對象。添加你的字符串,然後致電[myArray writeToURL:aURL atomically:NO];。這會將plist保存到您提供的URL中的文件。

然後,您可以用[NSArray arrayWithContentsOfURL:aURL];

創建一個NSArray保存以類似的方式,只要對象與NSCoder協議的規定可以做的圖像重新加載列表。有關更多信息,請參閱here