在具有不同值的MutableArray中存储多个值

时间:2013-04-11 09:53:25

标签: iphone ios

我有一个按钮,点击后我将当前引号的索引存储到一个数组中。 问题是它覆盖了同一个对象。如何使用NSNumber的不同对象更改它以存储在NSMutableArray中?

[someButton setImage:[UIImage imageNamed:@"add_favoritegold.png"] forState:UIControlStateHighlighted];
    NSUserDefaults *favoriteQuotes = [NSUserDefaults standardUserDefaults];
    NSMutableArray *ListOfIndex= [[NSMutableArray alloc] init];

    //Want to change with diffrent objecy 
    **NSNumber* Wrapped = [NSNumber numberWithInt:index];**

    [ListOfIndex addObject:Wrapped];
    int xOut = [[ListOfIndex lastObject] intValue];
    NSLog(@"%d",xOut);
    [favoriteQuotes setObject:ListOfIndex forKey:@"Indexes"];

2 个答案:

答案 0 :(得分:0)

您正在使用ListOfIndex键保存Indexes

因此,对于下一个值,它将替换具有键Indexes的前一个值。

编辑:

读取数组

 NSArray *readArray=favoriteQuotes[@"Indexes"];

将新值添加到同一个数组中。

答案 1 :(得分:0)

试试这个

- (void)saveFavouriteQuoteIndex:(NSUInteger)index
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableArray *savedQuoteIndexes = [[defaults objectForKey:@"Indexes"]mutableCopy];

    if (!savedQuoteIndexes) {
        savedQuoteIndexes = [NSMutableArray array];
    }

    NSNumber *indexNumber = @(index);

    if (![savedQuoteIndexes containsObject:indexNumber]) {
        [savedQuoteIndexes addObject:indexNumber];

        [defaults setObject:savedQuoteIndexes forKey:@"Indexes"];
        [defaults synchronize];
    }

}
相关问题