NSArray *arrFuelType = [[NSArray alloc] initWithObjects:@"Petrol", @"Diesel", @"LPG", @"CNG", nil];
NSUserDefaults *fuelTypeDefaults = [NSUserDefaults standardUserDefaults];
[fuelTypeDefaults setObject:arrFuelType forKey:@"fueltype"];
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"fueltype"];
[fuelTypeDefaults synchronize];
我正在执行此操作以保存nsuserdefaults,但每次存储“1”。 我不明白为什么这个存储价值这样!!! 那我该怎么办?
答案 0 :(得分:1)
您不能使用相同的密钥。你所做的就是删除上一个变量(所以你的数组)。
答案 1 :(得分:1)
你使用不同的键,如:
NSUserDefaults *fuelTypeDefaults = [NSUserDefaults standardUserDefaults];
[fuelTypeDefaults setObject:arrFuelType forKey:@"fueltype_array"];
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"fueltype_bool"];
检索此值:
NSMutableArray *arr= [[NSUserDefaults standardUserDefaults]arrayForKey:@"fueltype_array"];
bool *bol=[[NSUserDefaults standardUserDefaults ]boolForKey:@"fueltype_bool"];
答案 2 :(得分:0)
您无法为同一个密钥保存两个对象。因为您必须为每个对象单独KEY
。
如果名称中的密钥不存在,您可以检查Key
退出是否objectForKey:
将返回nil。
正如您所描述的结果显示1
,因为最后您将此声明
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"fueltype"];
因此,重新TRUE
值意味着1
,因为0
表示false
而1
表示true
。
答案 3 :(得分:0)
这是因为您为同一个密钥存储了不同的值。您需要使用不同的密钥名称。
答案 4 :(得分:0)
您需要使用不同的密钥
NSArray *arrFuelType = [[NSArray alloc] initWithObjects:@"Petrol", @"Diesel", @"LPG", @"CNG", nil];
NSUserDefaults *fuelTypeDefaults = [NSUserDefaults standardUserDefaults];
[fuelTypeDefaults setObject:arrFuelType forKey:@"fueltype"];
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"boolKey"];
[fuelTypeDefaults synchronize];