0
我用fmdb与iPhone 3g固件:4.2.1(8C148)有一些麻烦。 我有一个包含sql命令(从数据库下载)的大型NSMutableArray。我通过NSAutoreleasePool(为iphone 3g发布一些内存的一部分)填充NSMutableArray,并且我得到了一个40+ MB的数组。fmdb iphone 3g大型阵列
然后,我用下面的命令:
[db beginTransaction];
for (NSString* sql in updateSQL)
{
if ([email protected]"") {
BOOL fmtest = [db executeUpdate:sql];
if (!fmtest) {
NSLog(@"Sql FAIL: %@",sql);
}
if ([db hadError]) {
NSLog(@"Err %d: %@", [db lastErrorCode], [db lastErrorMessage]);
}
}
// fetches--; // Counter of total updates;
}
[db commit];
在更新过程中,我得到了40/50 MB的内存分配。 Iphone 3g无法处理这个问题,它在一级警告中失败并最终退出。
我在iphone 3GS上试过了,它工作正常。
有没有人有任何想法如何跳过?我无法使用核心数据(尽管它是一个很好的解决方案),因为我已经将一个大型数据库预先捆绑在应用程序中。
是的,做到了!我看到我的内存分配从15-> 48+兆高峰稳定到15-20微米。我会尝试明天测试它,但到3g(我的主要测试是3gs)。 4和Ipad的工作就像一个魅力。 – Panagiotis 2011-06-15 21:43:41