我使用 UINavigationcontroller 作为根视图控制器。我是 ARC 下的 iphone ARC 和 sqlite 操作的新手。
- 我的 rootviewcontroller 是 loginviewcontroller 下一个是 homeview,其中包含带有 4 个 UIviewcontroller 的 scrollView。
我正在使用仪器进行测试,因为我收到了内存警告。使用我的应用程序大约 5-10 分钟后,当我注销(为此我使用 popToRootViewController)并再次登录时,Live Bytes 继续增加,当我检查调用树时 -
[NSObject(NSTreadPerformAdditions) performselectorOnMainThread:withObject:waituntilDone:]
显示使用的 15.91MB 字节,然后显示
我也在做 SQLite 操作,在执行这些操作时,它会增加
if(sqlite3_open([[self filePath]UTF8String],&dBObject)!= SQLITE_OK)
显示10MB Live Bytes用于 opendatabase、selectquery 和 update
我第一次使用 Instruments 测试我的应用程序,它显示以下内容:
我现在如何释放这个内存?
编辑:
我正在使用此代码检索数据
-(int)CheckCompanyIsAvailableInTradeList:(NSString *)CompanyId UserId:(NSString *)userId
{
int check=0;
if(sqlite3_open([[self filePath] UTF8String], &dBObject) == SQLITE_OK) {
NSString *sqlStatement =NULL;
sqlStatement = [ NSString stringWithFormat:@"SELECT COUNT(*) FROM tradelist WHERE compnyID = '%@' and UserMasterID ='%@' ;",CompanyId,userId];
if(sqlite3_prepare_v2(dBObject, [sqlStatement UTF8String], -1, &statement, NULL) == SQLITE_OK) {
@autoreleasepool {
while(sqlite3_step(statement) == SQLITE_ROW) {
check = sqlite3_column_int(statement, 0);
}
}
}
sqlite3_finalize(statement);
}
sqlite3_close(dBObject);
return check;
}
每当调用此方法时,活动字节都会持续增加