将对象添加到NSuserDefault中的现有密钥

时间:2013-07-25 04:43:54

标签: ios arrays nsuserdefaults

我想将另一个对象添加到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.strName下的密钥添加新值时,将替换之前的值。我想在同一个Key下添加新值。

5 个答案:

答案 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)

您无法为同一个密钥保存两个对象。
NSUserDefaultsNSDictionary中,密钥将是唯一的(特定密钥只能有一个对象)。

如果您需要执行此操作,可以将值存储在NSMutableArrayNSDictionary中,并将其添加到NSUserDefaults中,如:

[[NSUserDefaults standardUserDefaults] setObject:dataArray forKey:@"Name"];

答案 4 :(得分:0)

可能会有所帮助

[[NSUserDefaults standardUserDefaults] setObject: delegate.str forKey:@"Name"];