mse*_*sec 1 iphone int increment nsnumber ios
我试图以一种简单的方式增加一个数字,不会导致重复或丢失数字.这个数字最终将作为订单号存储在我的coreData实体的一个字段中,这就是为什么我不能有重复或错过的数字.
我有一个输入订单的视图,当它初始化时,它必须提供正确的订单号,这是我编码的:
-(void) viewDidLoad {
// If no orders have previously been entered the order number will be changed from 0 to 1
if (orderNumber == 0) {
orderNumber = orderNumber + 1;
}
// If orders have previously been entered the order number will be given the value that has previously been stored in orderNumber
else orderNumber = orderNumber;
NSLog(@"The Order Number is %d",orderNumber);
}
Run Code Online (Sandbox Code Playgroud)
当视图上的表单完成后,按下完成按钮,这将完成订单.清除视图上的所有文本字段,并将订单号增加1,以便输入下一个订单.
-(void) doneButtonTapped:(id)sender{
orderNumber = orderNumber + 1;
NSLog(@"orderNumber is increased to %d",orderNumber);
}
Run Code Online (Sandbox Code Playgroud)
我的头文件包括以下内容:
int orderNumber;
@property (nonatomic,assign) int orderNumber;
Run Code Online (Sandbox Code Playgroud)
这在应用程序运行时有效但如果我退出应用程序并重新运行它,我的orderNumber将从1开始.
当应用程序再次运行时,如何存储/保存与orderNumber关联的值以便在viewDidLoad中使用?
我的方法是递增确定还是有更好的方法?我使用过int但是我看到其他人使用的是NSNumber,我不确定使用其中一个是否有优点和缺点.
任何帮助/建议将不胜感激.
您可以使用NSUserDefaults存储intS和其他基本类型(BOOL,float,NSString,NSArray).
例如,您可以检索int使用
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
int orderNumber = [prefs integerForKey:@"orderNumber"];
Run Code Online (Sandbox Code Playgroud)
然后保存int使用
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setInteger:orderNumber forKey:@"orderNumber"];
Run Code Online (Sandbox Code Playgroud)
必要时,您也可以打电话
[prefs synchronize];
Run Code Online (Sandbox Code Playgroud)
确保您访问最新信息.如果您int在应用中的多个位置访问此功能,此功能尤其有用.
| 归档时间: |
|
| 查看次数: |
2581 次 |
| 最近记录: |