我有一个按钮,点击后我将当前引号的索引存储到一个数组中。
问题是它覆盖了同一个对象。如何使用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"];
答案 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];
}
}