0

クリックすると、現在の引用符のインデックスを配列に保存するボタンがあります。問題は、同じオブジェクトを上書きしていることです。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"];
4

2 に答える 2

0

ListOfIndexキーを として保存していますIndexes

したがって、次の値については、 key を持つ前の値を置き換えますIndexes

編集:

配列を読み取る

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

この同じ配列に新しい値を追加します。

于 2013-04-11T09:56:13.287 に答える
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];
    }

}
于 2013-04-11T10:06:37.410 に答える