1
我有這樣的代碼(該函數將被一次又一次地調用),但返回的對象給出「不良訪問」,NSLog打印正確的字符串,但有時候(我一次又一次地稱爲 )給出崩潰..任何有助於改變這一代碼,如果我去掉「自動釋放」的方法,它worsks精細當NSMutableArray返回時發生崩潰?
- (NSMutableArray *)getAll:(NSString *)type
{
NSLog(@"Type: %@", type);
NSMutableArray *toReturn = [[[NSMutableArray alloc] initWithCapacity:0] autorelease];
rs = [db executeQuery:Query1];
while ([rs next]) {
[toReturn addObject:[rs stringForColumn:@"Name"]];
NSLog(@"name: %@", [rs stringForColumn:@"Name"]);
}
[rs close];
return toReturn;
}
請參閱我的Q再次,我已經在使用的NSMutableArray自動釋放, 我試圖使用複製,它給出了同樣的崩潰 – 2010-03-16 09:00:00
我看不到一個自動釋放池(你是否刪除了部分代碼?),我看不到副本。我在這裏錯過了什麼嗎?也許你想看看http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/MemoryMgmt/Articles/mmAutoreleasePools.html#//apple_ref/doc/uid/20000047-CJBFBEDI – hanno 2010-03-16 09:21:18
副本是不存在,但我用於檢查...我用 NSMutableArray * toReturn = [[[[[NSMutableArray alloc] initWithCapacity:0] autorelease]; – 2010-03-16 09:43:09