有没有办法只运行一次代码?不适用于每种用法。当用户下载应用程序并运行它时,代码将只运行一次而不再运行。
我尝试创建一个初始为0的整数,并将其保存到nsuerdefaults。
并在if语句检查中创建了这个特殊代码,如果它的0输入代码但是如果它不是0则不输入它,并且在if语句中我增加0并保存它以便它赢得'再次进入它。
但它没有成功
NSInteger temp = [[NSUserDefaults standardUserDefaults] integerForKey:@"forOnce"];
if (temp==0) {
int k=0;
if (NSClassFromString(@"CTTelephonyNetworkInfo"))
{
CTTelephonyNetworkInfo *netInfo =[[CTTelephonyNetworkInfo alloc]init];
CTCarrier *carrier =[netInfo subscriberCellularProvider];
testUser[@"Carrier"]=[carrier carrierName];
//NSLog(@"carrier bu %@",[carrier carrierName]);
}
temp++;
[[NSUserDefaults standardUserDefaults] setInteger:k forKey:@"forOnce"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
代码是那样的
答案 0 :(得分:2)
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"EXECUTE_ALREADY"])
{
NSLog(@"ONCE");
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"EXECUTE_ALREADY"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
基本理念与您的基本理念相同。它有效。
答案 1 :(得分:0)
Try this method in AppDelegate.h
@property(nonatomic,assign)BOOL isFirst;
- (BOOL) isFirstRun
{
Defaults = [NSUserDefaults standardUserDefaults];
if ([Defaults objectForKey:@"isFirstRun"])
{
//if application running in second time
isFirst=NO;
NSLog(@"isSecondRun isfirst:%d",isFirst);
return NO;
}
//if application running in first time
isFirst=YES;
NSLog(@"isFirstRun isfirst:%d",isFirst);
[Defaults setObject:[NSDate date] forKey:@"isFirstRun"];
[[NSUserDefaults standardUserDefaults] synchronize];
return YES;
}
and check
NSLog(@"isfirst:%d",[self isFirstRun]);
if(isFirst==1)
{
//Do your operations.
}