У меня есть функция с именем: - (void) AddSortedCustomFeed :(NSMutableArray*) rssList;
эта функция добавляет элементы (Статьи) из базы данных sqlite в NSMutableArray
вот как эта функция работает:
- (void) AddSortedCustomFeed :(NSMutableArray*)rssList {
NSLog(@"\n\n\n ----- Add Sorted SQL Database -----");
NSLog(@"Start");
// Create Query String.
NSString* sqliteQuery = [NSString stringWithFormat:@"SELECT mainLink, title, summary, pubDate, author, imageLink, body, favorites, pubdatetime FROM ARTICLES WHERE customfeed = 'Y' ORDER BY pubdatetime DESC"];
NSLog(@"Query String is: %@", sqliteQuery);
// Pointer to Article and Statement.
Article* article;
sqlite3_stmt* statement;
// Prepare SQL for work.
if( sqlite3_prepare_v2(articlesDB, [sqliteQuery UTF8String], -1, &statement, NULL) == SQLITE_OK ) {
// Get next row from database.
while( sqlite3_step(statement) == SQLITE_ROW ) {
// Alloc and init article.
article = [[Article alloc] initWithValues:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 1)]
mainLink:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 0)]
summary:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 2)]
pubDate:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 3)]
author:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 4)]
imageLink:[NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 5)] ];
//article.body = [NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 6)];
NSString* favo = [NSString stringWithUTF8String:(const char*)sqlite3_column_text(statement, 7)];
article.favorite = [favo hasPrefix:@"N"] ? NO : YES;
// Add to list.
[rssList addObject:article];
// Release article.
[article release];
}
}
else NSLog( @"SortSQLDatabase: Failed from sqlite3_prepare_v2. Error is: %s", sqlite3_errmsg(articlesDB) );
// Finalize and close database.
sqlite3_finalize(statement);
NSLog(@"End\n\n\n");
}
Как вы можете видеть в этой функции я создаю статьюArticle* article;
и в то время как цикл размещает и инициализирует его.После этого я добавляю объект Article в NSMutableArray
и затем освобождаю его, но затем я вызываю [article release];
, ведь ведь она должна вызывать функцию delloc, которую она не вызывает?Я не могу понять почему.Я пытаюсь разными способами, но все мои попытки терпят неудачу.Это статья о Статья Класс - ссылка