如何解决COUNT*表示EXC_BAD_ACCESS
|| 在使用SELECT语句执行SQLITE并使用COUNT(*)来计算该列的总数时,给了我EXC_BAD_ACCESS。 从一个数组添加到另一个数组时,它向我发送错误。不知道为什么这样做,但是有人遇到过这样的问题可以提供帮助吗?-(void) title{
self.array = [[[NSMutableArray alloc] init] autorelease];
const char *query_stmt = \"SELECT DISTINCT ID,KEY,COUNT (*) FROM TEST GROUP BY KEY\";
if (sqlite3_prepare_v2(database,query_stmt,-1,&statement,NULL) == SQLITE_OK)
{
while(sqlite3_step(statement) == SQLITE_ROW)
{
NSString *ID = [NSString stringWithUTF8String:(char *) sqlite3_column_text(exhProduct_statement,0)];
NSString *KEY = [NSString stringWithUTF8String:(char *) sqlite3_column_text(exhProduct_statement,1)];
NSUInteger taskCount= sqlite3_column_int(exhProduct_statement,2);
NSMutableArray *taskArray=[[NSMutableArray alloc]initWithObjects:ID,taskCount,nil] ; <--- Error
[self.array addObject:taskArray];
}
sqlite3_finalize(statement);
}
}
解决方法
您需要将ѭ1更改为
NSNumber
:
NSMutableArray *taskArray=[[NSMutableArray alloc]initWithObjects:ID,KEY,[NSNumber numberWithUnsignedInteger:taskCount],nil] ;
您以后可以使用
NSUInteger *retrievedTaskCount = [[taskArray objectAtIndex:2] unsignedIntegerValue];
原因是an5ѭ存储NSObject
,因此,只要您有int
,float
,NSInteger
,NSUInteger
等,并希望存储在NSArray
或NSMutableArray
中,就需要将其转换为对象。 NSNumber
是为此而建的一个课堂。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。