我为我的 iPhone 应用程序使用 SQLITE 数据库
在我在数据库中的应用程序中重试数据库中的内容时,我使用了一个数组,并在数据库方法中返回该数组以用于 select 语句,
为此,我分配了一个数组,我需要释放数组,
NSMutableArray *allContacts = [[NSMutableArray alloc] init];
return allContacts;
如果我释放一个数组,我将如何在 return 语句中使用
反之亦然,如果我试图在返回后释放(返回后我们可以做任何事情)
请问有什么解决办法......
我们应该如何使用自动释放 NSMutable 数组
//Select statement for contacts
//==================================
+ (NSMutableArray*) selectAllContactsFromDB
{
NSString *DBPath = [self copyDBFile];
sqlite3 *contactsDB = nil;
sqlite3_stmt *statement = nil;
NSMutableArray *allContacts = [[NSMutableArray alloc] init];
if (sqlite3_open([DBPath UTF8String], &contactsDB) == SQLITE_OK)
{
NSString *query = [NSString stringWithFormat: @"SELECT ROWID, NAME, MOBILE, FROM CONTACTINFO"];
if(sqlite3_prepare_v2(contactsDB, [query UTF8String], -1, &statement, NULL) == SQLITE_OK)
{
while (sqlite3_step(statement) == SQLITE_ROW)
{
Contact *contact = [[Contact alloc] init];
contact.rowid = sqlite3_column_int(statement, 0);
contact.name = [NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 1)];
contact.mobile = [NSString stringWithUTF8String:(const char*) sqlite3_column_text(statement, 2)];
[allContacts addObject:contact];
}
}
else {
NSLog(@"Statement not prepared");
}
}
[DBPath release];
return allContacts;
}