私のiPhoneアプリにSQLITE DATABASEを使用しています
データベースのコンテンツを再試行するデータベース内のアプリで、配列を使用し、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;
}