嗨,所有我有一個類與我的應用程序中的sqlite數據庫一起工作。在這裏你可以看到我寫的一個函數。該函數必須獲得列值等於給定值的項目數。我應該使用AutoreleasePool嗎?
+ (int) GetCountOfItems: (NSString*) byColumn {
// Autorelease Pool.
NSAutoreleasePool* pool = [[NSAutoreleasePool alloc]init];
// Create Sqlite query string.
NSString* sqliteQuery = [NSString stringWithFormat:@"SELECT COUNT(*) FROM [Articles] WHERE %@ = 1", byColumn];
NSLog(@"GetCountOfItems query string is: %@", sqliteQuery);
// Create statement.
sqlite3_stmt* stmt;
int articleCount = 0;
if(sqlite3_prepare_v2(database, [sqliteQuery UTF8String], -1, &stmt, NULL) == SQLITE_OK) {
if(sqlite3_step(stmt) == SQLITE_ROW)
articleCount = sqlite3_column_int(stmt, 0);
}
else NSLog(@"Failed from GetCountOfItems. Error is: %c", sqlite3_errmsg(database));
// Finalize.
sqlite3_finalize(stmt);
// Release Pool.
[pool release];
return articleCount;
}
我想知道,如果這個功能是正確的,例如我應該使用NSAutoreleasePool *池= [[NSAutoreleasePool的alloc]初始化] ????它如何可以幫助我的記憶?
有足夠的問號嗎? – mxcl 2011-04-07 12:07:07