Не в состоянии добавитьObject к NSMutableArray - PullRequest
0 голосов
/ 09 марта 2012

Я создаю это «Добавить в избранное» с NSUserDefault. У меня возникла эта проблема при добавлении массива в NSMutableArray. Кто-нибудь знает, что я сделал не так? Большое спасибо.

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSMutableArray *favoriteRecipes = [[NSMutableArray alloc] init];


if ([prefs objectForKey:@"myFavor"] == nil) {
    //create the array
    NSMutableArray *array = [[NSMutableArray alloc] init];
    [prefs setObject:array forKey:@"myFavor"];
    [array release];
}
NSMutableArray *tempArray = [[prefs objectForKey:@"myFavor"] mutableCopy];
favoriteRecipes = tempArray;
[tempArray release];

NSArray *charArray = [[NSArray alloc] initWithObjects: @"test1", @"test2" , nil];

//add the recipe
[favoriteRecipes addObject:[charArray objectAtIndex:0]];  

//save the array to NSUserDefaults
[prefs setObject:favoriteRecipes forKey:@"myFavor"];
[prefs synchronize];

Ответы [ 2 ]

1 голос
/ 09 марта 2012
favoriteRecipes = tempArray;

instated of above line use be below line it will work fine 

[favoriteRecipes addObjectsFromArray:tempArray];
0 голосов
/ 09 марта 2012

сделал что-то подобное вчера.см. мой код ниже.я не уверен, если вы хотите то же самое, что я сделал.

NSDictionary *tempDictionary = [NSDictionary dictionaryWithObjectsAndKeys:productID,@"ID",productTitle,@"title",productPrice,@"price",imageUrl,@"image",shipping,@"shipping_day", nil];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *cartList = [[defaults objectForKey:@"CART_ITEMS"] mutableCopy];

if(!cartList)
    cartList = [[NSMutableArray alloc] init];

if([cartList indexOfObject:tempDictionary] == NSNotFound)
{
    NSLog(@"add favorite");
    [cartList addObject:tempDictionary];
    [defaults setObject:cartList forKey:@"CART_ITEMS"];
    [defaults synchronize];
    [sender setTitle:@"Remove" forState:UIControlStateNormal];
}
else
{
    NSLog(@"remove favorite");
    [cartList removeObject:tempDictionary];
    [defaults setObject:cartList forKey:@"CART_ITEMS"];
    [defaults synchronize];
    [sender setTitle:@"Add to cart" forState:UIControlStateNormal]; 
}

это то, что я делаю каждый раз, когда я хочу свой список избранных из NSUserDefault

-(void)getCartList
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *cartList = [[defaults objectForKey:@"CART_ITEMS"] mutableCopy];
productListArr = [NSMutableArray arrayWithArray:cartList];
NSLog(@"cart list data == %@", cartList);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...