有什么方法可以确定我的应用程序在iphone上第一次执行吗?
我想说明的指令的消息时,用户第一次使用我的应用程序,但之后再也没有等到他不会删除,并重新下载,,,有什么方法可以确定我的应用程序在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