Ios 如何在objective-c中为每个用户在其整个生命周期中只运行一次代码
有没有办法只运行一次代码?不是每次使用都可以。当用户下载并运行应用程序时,代码将只运行一次,不再运行 我试图创建一个初始值为0的整数,并将其保存到nsuerdefaults 在if语句中检查这个特殊的代码,如果它为0,则输入代码,如果它不是0,则不输入代码,在if语句中,我增加了0并保存了它,这样它就不会再输入它 但是没有成功Ios 如何在objective-c中为每个用户在其整个生命周期中只运行一次代码,ios,iphone,objective-c,nsuserdefaults,Ios,Iphone,Objective C,Nsuserdefaults,有没有办法只运行一次代码?不是每次使用都可以。当用户下载并运行应用程序时,代码将只运行一次,不再运行 我试图创建一个初始值为0的整数,并将其保存到nsuerdefaults 在if语句中检查这个特殊的代码,如果它为0,则输入代码,如果它不是0,则不输入代码,在if语句中,我增加了0并保存了它,这样它就不会再输入它 但是没有成功 NSInteger temp = [[NSUserDefaults standardUserDefaults] integerForKey:@"forOnce"];
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];
}
代码是这样的
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"EXECUTE_ALREADY"])
{
NSLog(@"ONCE");
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"EXECUTE_ALREADY"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
基本想法和你的一样。它可以工作。Temp==0,当您第一次加载它时。所以你必须把k=1(而不是k=0)。因为当您在“用户默认设置”中保存k=0时,您将在下一次的Temp中再次将其检索为0。如果用户更改了设备并将应用程序重新安装到新设备上,该怎么办D@Zhang哈哈,这可能是因为有点误传:)@PaintedBlack我不太明白你想告诉我什么他的if()条件正在检查诱惑,但他正在将“k”保存到NSUserDefaults中,诱惑将始终为0,条件始终为真。我认为他需要将诱惑存储到NSUserDefaults而不是“k”中。好吧,它可以工作,但代码从未运行过,我得到了3个测试设备,在第一次运行之后,它从NSUserDefaults中获得了保存
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.
}