嗨,我是ios的新手,在我的项目中,我使用的是NSuserDEfaults
但是当我检索到int值时,我没有得到确切的值,我变得喜欢" 383252368"在NSLog声明中
请帮助我一些如何获得确切的价值
我的代码: -
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSUserDefaults *def =[NSUserDefaults standardUserDefaults]; [def setInteger:indexPath.row forKey:@"index"];
}
NSUserDefaults *def =[NSUserDefaults standardUserDefaults];
int index = [def integerForKey:@"index"];
答案 0 :(得分:0)
这样做:
保存如下:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
int index = indexPath.row;
[userDefaults setInteger:index forKey:@"index"];
检索如:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSInteger loadrows = [userDefaults integerForKey:@"index"];
修改强>
最好将它保存在数组中:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
int index = indexPath.row;
[mutableArray addObject:index];
}
然后Retrive:
for (NSIndexPath *indexPath in mutableArray) {
NSLog(@"index : %d",indexPath);
}
答案 1 :(得分:0)
保存
[[NSUserDefaults standardUserDefaults] setInteger:indexPath.row forKey:@"index"];
用于Retreiving
NSInteger row = [[NSUserDefaults standardUserDefaults] integerForKey:@"index"];
此
的另一种方式保存
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithInt:indexPath.row] forKey:@"index"];
Retreiving
NSInteger row = [[[NSUserDefaults standardUserDefaults] objectForKey:@"index"] intValue];
答案 2 :(得分:0)
问题在于储蓄本身。设置值后,您必须调用
[[NSUserDefaults standardUserDefaults] synchronize];
此方法确保该变量可用于在其他视图控制器中获取。如果没有设置,那么变量的并行访问将导致一些junk.unknown值。