NSMutableArray *bookmarks = [[NSMutableArray alloc]init];
NSArray *bookmarksLoaded = [userDefaults arrayForKey:@"bookmarks"];
if (bookmarksLoaded != nil) {
[bookmarks initWithArray:bookmarksLoaded];
} else {
[bookmarks init];
}
Проблема с приведенным выше кодом заключается в том, что вы инициируете закладки везде. Любой объект в цели C должен быть инициирован один раз. Я перезапишу ваш код как
NSMutableArray *bookmarks = nil;
NSArray *bookmarksLoaded = [userDefaults arrayForKey:@"bookmarks"];
if (bookmarksLoaded != nil) {
bookmarks = [[NSMutableArray alloc] initWithArray:bookmarksLoaded];
} else {
bookmarks = [[NSMutableArray alloc] init];
}
Также вы должны выпустить NSMutableDictionaryдобавить в закладки, так как вы создаете его с помощью нового ..
NSMutableDictionary *bookmark = [NSMutableDictionary new];
[bookmark setValue:@"value" forKey:@"name"];
[bookmark setValue:@"value" forKey:@"description"];
[bookmark setValue:@"value" forKey:@"code"];
[bookmarks addObject:bookmark];
[bookmark release];
Кроме того, из кода понятно, что вы еще не поняли управление памятью в iphone. Чтобы стать успешным разработчиком iOS, вы должны изучитьчто первый ..