gpt4 book ai didi

iphone - NSMutableArray addObject,无法识别的选择器

转载 作者:太空狗 更新时间:2023-10-30 03:48:14 33 4
gpt4 key购买 nike

我正在尝试创建数组(城市)的数组(州)。每当我尝试向我的 City 数组添加一个项目时,我都会收到此错误:

'NSInvalidArgumentException', reason: '*** +[NSMutableArray addObject:]: unrecognized selector sent to class 0x303097a0

我的代码如下。它出错的行是

 [currentCities addObject:city];

我确定我遇到了一些内存管理问题,因为我仍然不太了解它。希望有人能向我解释我的错误。

if (sqlite3_prepare_v2(db, sql, -1, &statement, NULL) == SQLITE_OK){
// We need to keep track of the state we are on
NSString *state = @"none";
NSMutableArray *currentCities = [NSMutableArray alloc];

// We "step" through the results - once for each row
while (sqlite3_step(statement) == SQLITE_ROW){
// The second parameter indicates the column index into the result set.
int primaryKey = sqlite3_column_int(statement, 0);
City *city = [[City alloc] initWithPrimaryKey:primaryKey database:db];

if (![state isEqualToString:city.state])
{
// We switched states
state = [[NSString alloc] initWithString:city.state];

// Add the old array to the states array
[self.states addObject:currentCities];

// set up a new cities array
currentCities = [NSMutableArray init];
}

[currentCities addObject:city];
[city release];
}
}

最佳答案

线条:

// set up a new cities array
currentCities = [NSMutableArray init];

应阅读:

// set up a new cities array
[currentCities init];

这应该有望解决您的问题。您不是初始化数组,而是向类对象发送初始化消息,该类对象不执行任何操作。之后,您的 currentCities 指针仍未初始化。

更好的方法是删除该行并更改第 4 行,这样您就可以一步分配和初始化所有内容:

NSMutableArray *currentCities = [[NSMutableArray alloc] init];

关于iphone - NSMutableArray addObject,无法识别的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1676789/

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