gpt4 book ai didi

iphone - COUNT (*) 给出 EXC_BAD_ACCESS

转载 作者:行者123 更新时间:2023-11-28 20:45:45 25 4
gpt4 key购买 nike

当使用 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, KEY, taskCount,nil] ; <--- Error

[self.array addObject:taskArray];
}
sqlite3_finalize(statement);
}
}

最佳答案

您需要将 NSUInteger 更改为 NSNumber:

    NSMutableArray *taskArray=[[NSMutableArray alloc]initWithObjects:ID, KEY, [NSNumber numberWithUnsignedInteger:taskCount],nil] ;

您稍后可以使用

检索该值
    NSUInteger *retrievedTaskCount = [[taskArray objectAtIndex:2] unsignedIntegerValue];

这样做的原因是 NSArray 存储 NSObject,所以任何时候你有一个 intfloatNSIntegerNSUInteger 等,您希望存储在 NSArrayNSMutableArray 中,您将需要将其转换为对象。 NSNumber 是专门为此构建的类。

关于iphone - COUNT (*) 给出 EXC_BAD_ACCESS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6474245/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com