嗨,所有我有一个类与我的应用程序中的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