Не удалось удалить элементы из изменяемого массива - PullRequest
0 голосов
/ 21 августа 2010

в моем предыдущем вопросе мне дали какой-то код для составления этой характеристики.

favourite Array - это изменяемый массив ...

if (![self.favoritesArray containsObject:@"added"])
    {
        [self.favoritesArray addObject:@"added"];
    }

else
{
    [self.favoritesArray removeObject:@"added"];
}
//NSUInteger newRow = [self.favoritesArray count];

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setObject:self.favoritesArray forKey:@"MyFavorites"]; 

однако я не могу получить @"added" подлежит удалению ... при загрузке приложения оно автоматически загружает добавленный в избранное добавленный текст даже после очистки кода.когда я нажимаю кнопку, она не удаляется.так что я предполагаю, что что-то не так

и вот где я его загружаю ...

   NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
   NSMutableArray *didContain = [[NSMutableArray alloc] init];
   didContain = [[userDefaults objectForKey:@"MyFavorites"] mutableCopy];

   if ([didContain count] == 0) {
       NSLog (@"zero");

            //
            // no favorites have ever been saved
            //


    } else {

        // load the favorites into some array you synthesized just like before
        self.tableFavoritesData = [[NSMutableArray alloc] init];
        self.tableFavoritesData = [[userDefaults objectForKey:@"MyFavorites"] mutableCopy];
    }

Ответы [ 2 ]

3 голосов
/ 21 августа 2010

Ваш код не имеет особого смысла.

Чтобы загрузить массив из значений по умолчанию:

NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
self.tableFavoritesData = [[userDefaults arrayForKey:@"MyFavorites"] mutableCopy];

Это все, что нужно сделать.Если у вас нет пустого массива, установленного в качестве значения по умолчанию, вы можете проверить nil:

if (!self.tableFavouritesData)
    self.tableFavoritesData = [[NSMutableArray alloc] init];

Или вы не сможете поместить что-нибудь в него каквсе равно будет ноль.(В качестве альтернативы используйте registerDefaults: для регистрации значения по умолчанию. Это предпочтительный способ, и вы должны сделать это до фактического чтения значений по умолчанию, то есть непосредственно при запуске).

0 голосов
/ 21 августа 2010

Просто попробуйте добавить @"added" после создания массива и посмотрите, удаляется ли он, распечатывая массив. Возможно, вы неправильно сериализовали его или добавили значение правильным образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...