在我之前的问题中,我得到了一些代码,以便弥补这个陈述。
favoriteArray是一个可变阵列......
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];
}
答案 0 :(得分:3)
你的代码没有多大意义。
从默认值加载数组:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
self.tableFavoritesData = [[userDefaults arrayForKey:@"MyFavorites"] mutableCopy];
是否有所作为。如果没有将空数组设置为默认值,则可以检查nil:
if (!self.tableFavouritesData)
self.tableFavoritesData = [[NSMutableArray alloc] init];
或者你将无法将任何放入其中,因为它仍然是零。 (或者使用registerDefaults:
注册一个默认值。这是首选的方法,你必须在实际读取默认值之前,即直接在启动时这样做。
答案 1 :(得分:0)
尝试在创建数组后添加@"added"
,看看是否删除了打印数组。也许你没有正确地序列化它或以正确的方式添加值。