我想将另一个对象添加到NSUserDefault
中的现有密钥。
我尝试将此代码添加到NSUserDefault
。
delegate.str=[first objectAtIndex:delegate.selectId];
NSLog(@"%@",delegate.str);
delegate.str1=[details1 objectAtIndex:delegate.selectId];
NSLog(@"%@",delegate.str1);
[delegate.BookMarkDefault setObject:delegate.str forKey:@"Name"];
// BookMarkDefault这是NSUSERDefault。
首先,我将delegate.str
值成功插入NSUSerDefault
,但下次通过delegate.str
为Name
下的密钥添加新值时,将替换之前的值。我想在同一个Key下添加新值。
答案 0 :(得分:2)
如果你想满足这种要求然后尝试使用数组然后将该数组放入NSUSerDefault中,这是不可能的...... 试试这段代码
delegate.str=[first objectAtIndex:delegate.selectId];
NSLog(@"%@",delegate.str);
delegate.str1=[details1 objectAtIndex:delegate.selectId];
NSLog(@"%@",delegate.str1);
[yourarray addObject:delegate.str];
NSLog(@"%@",delegate.Bookmarknamearray);
[delegate.BookMarkDefault setObject:youarray forKey:@"Name"];
答案 1 :(得分:1)
不能将多个值分配给同一个键。如果要对同一个键使用多个值,请使用数组或字典并将它们分配给键。
前:
[[NSUserDefaults standardUserDefaults] setObject:YOUR_ARRAY forKey:@"Name"];
希望它对你有所帮助。
答案 2 :(得分:0)
您无法在NSUserDefaults的单个键中分配两个值,您必须为每个值选择另一个"KEY"
。您可以使用以下代码替换以前的值:
尝试使用以下代码:
[[NSUserDefaults standardUserDefaults] setObject: delegate.str forKey:@"Name"];
EDITE:
但您可以在NSUserDefaults中添加数组,例如
self.golbalArr = [[NSMutableArray alloc]initWithObject:@"1", @"2",....,nil];
[[NSUserDefaults standardUserDefaults] setObject: self.golbalArr forKey:@"Name"];
答案 3 :(得分:0)
您无法为同一个密钥保存两个对象。
在NSUserDefaults
和NSDictionary
中,密钥将是唯一的(特定密钥只能有一个对象)。
如果您需要执行此操作,可以将值存储在NSMutableArray
或NSDictionary
中,并将其添加到NSUserDefaults中,如:
[[NSUserDefaults standardUserDefaults] setObject:dataArray forKey:@"Name"];
答案 4 :(得分:0)
可能会有所帮助
[[NSUserDefaults standardUserDefaults] setObject: delegate.str forKey:@"Name"];