- (NSMutableArray*)findContactInfoWithuseid:(NSString*)userid
{
NSMutableArray *list = [[[NSMutableArray alloc]init]autorelease];
//ResultSet *rs = [[DBHelper sharedInstance].database executeQuery:@"SELECT * FROM PliceContact where userId = ?",userid];
ResultSet *rs = [[DBHelper sharedInstance].database executeQuery:@"SELECT * FROM PliceContact where userId"];
while([rs next]) {
ContactInfo *info = [[ContactInfo alloc] init];
info._userId = [rs stringForColumnIndex: 0];
info._department = [rs stringForColumnIndex: 1];
info._userName = [rs stringForColumnIndex: 2];
info._recordId = [rs stringForColumnIndex: 3];
[list addObject:info];
[info release];
}
return list;
}- (void)getPoliceListData{
NSLog(@"get the list");
NSMutableArray *resultArray = [[NSMutableArray alloc] init];
resultArray = [[TableMaintenance sharedInstance] findContactInfoWithuseid:@"1"];
NSLog(@"resultArray = %@",resultArray);

[resultArray release];//这边释放就会崩溃了,何解?
}

解决方案 »

  1.   

     谢谢了,我已经知道原因了,是因为指向一个autorelease 初始化时候的确是returnCount加1
     但是resultArray指向一个autorelease ,它被从新指向另一块内存,而且此块内存的是自动释放的
    不会因为以前的内存计数多少而加一的,谢谢关注.
      

  2.   

    NSMutableArray *resultArray = [[NSMutableArray alloc] init];
    resultArray = [[TableMaintenance sharedInstance] findContactInfoWithuseid:@"1"];狠有问题