我想說明的指令的消息時,用戶第一次使用我的應用程序,但之後再也沒有等到他不會刪除,並重新下載,,,有什麼方法可以確定我的應用程序在iphone上第一次執行嗎?
一個簡單的方法就是保存sqlite3的數據庫中的某些價值而與之相匹配, 但我想用別的東西,,,,
我想說明的指令的消息時,用戶第一次使用我的應用程序,但之後再也沒有等到他不會刪除,並重新下載,,,有什麼方法可以確定我的應用程序在iphone上第一次執行嗎?
一個簡單的方法就是保存sqlite3的數據庫中的某些價值而與之相匹配, 但我想用別的東西,,,,
你可以做其他答案者建議的任何事情,或只是檢查應用程序「文檔」目錄下的某個文件(稱爲firstrun.txt)在啓動時存在。
如果它不存在,請顯示歡迎信息並創建它,否則,什麼也不做。當用戶更新應用程序時,「文檔」目錄不會被清空。
就是這樣。
我會使用NSUserDefaults
:
if ([[NSUserDefaults standardUserDefaults] boolForKey:kHasRun] == NO) {
// do something
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kHasRun];
}
我應該在AppDelegate中把這段代碼放在哪裏? – 2011-04-22 07:02:06
什麼是kHasRun,用戶定義的BOOL或其他? – 2011-04-22 07:04:09
是的,'-application:didFinishLaunchingWithOptions:'在你的應用程序委託中是理想的地方。 'kHasRun'只是一個'#define'常量;你可以像'@「MyStartupKey」'一樣使用'NSString',如果你願意的話。 – conmulligan 2011-04-22 19:28:48
您CA使用SQLite或plist中或[NSUserDefaults的standardUserDefaults]保存價值。
我最初給了u +1 ...因爲想出了一些不同的和不尋常的bcos,當我有NSUserDefaults來完成這個任務時,我永遠不會想到創建一個文件....你的解決方案將像魅力一樣工作..但突然間我意識到我們的編程老師曾經教過我們......「多種做事的方式,選擇最合適的方式」,所以我收回了我的upvote ..不管怎麼說,我對你的開箱欣賞... – 2011-04-22 07:16:54
@Iphone_bharat:你對。我是(非常有經驗的)C程序員,我總是傾向於使用「老派」解決方案。當我可以檢查文件是否存在時,我很難使用特定的類:) – gd1 2011-04-22 07:21:45
@Iphone_bharat ,,,我可以通過簡單地在sqlite中保存,但我想要別的東西,你說不要使用NSUserDefaults,但它仍然不適合我,並且就票選而言,我真的相信學習,而不是投票 – 2011-04-22 07:28:35