我想控制代码在整个软件生命周期中只运行一次,
例如我需要用代码来创建一个sqlite3 的一个数据库,我只需要在程序第一次运行的时候运行这段代码就可以了,这个我应该怎样实现,
小白求解;

解决方案 »

  1.   


    把下面代码中的UD换成[NSUserDefaults standardUserDefaults]就行了,也可以像我一样写个宏(#define UD [NSUserDefaults standardUserDefaults])
        if (![UD boolForKey:@"everLaunched"]) {
            [UD setBool:YES forKey:@"everLaunched"];
            [UD setBool:YES forKey:@"firstLaunch"];
        }
        else{
            [UD setBool:NO forKey:@"firstLaunch"];
        }
        
        if ([UD boolForKey:@"firstLaunch"]) {
            //第一次运行,以游客登录
           do........
        }
      

  2.   

    NSUserDefaults可以保存信息,其实NSUserDefaults就是一个.plist文件。可以考虑将信息保存在文件中,下次读取文件查看是否是第一次运行。注意多线程
      

  3.   


        static dispatch_once_t disOnce;
        dispatch_once(&disOnce,  ^ {
            // 该干嘛就干嘛
        });