NSMutableArray addObject,无法识别的选择器

2024-04-29

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

'NSInvalidArgumentException',原因:'*** +[NSMutableArray addObject:]: 无法识别的选择器发送到类 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指针仍然没有初始化。

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

NSMutableArray *currentCities = [[NSMutableArray alloc] init];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NSMutableArray addObject,无法识别的选择器 的相关文章

随机推荐

  • 直接放置在 std::map 中

    为什么这段代码无法编译 std map
  • 有没有办法使用 iframe api 在暂停时隐藏相关的 Youtube 视频?

    我正在使用 iframe API 我想在页面上嵌入一些视频 但我不想在用户暂停视频时显示相关视频 我知道 2018 年 9 月之后 Youtube 取消了在结束或暂停视频时隐藏相关视频的可能性 我知道参数 rel 0 现在显示来自视频上传者
  • Android 检测 Kitkat 的 USB 存储 (4.4)

    我创建了一个 webview 应用程序 它在资产目录中的应用程序内托管一个网站 我想通过插入我的平板电脑 USB 插槽的 U 盘来更新网站 我首先尝试使用 MEDIA MOUNTED 广播 该广播不适用于我的 android 4 4 药片
  • Android SQLite 列.....不是唯一的

    我在 Android 上使用 SQLite 并收到此错误 02 11 18 05 37 224 E SQLiteDatabase 26583 android database sqlite SQLiteConstraintException
  • 添加覆盖 twinx 轴线条的图例

    我有这个Python代码 它与轴成对ax并在两个轴上绘制一些函数 我将图例绘制在ax1 问题是图例没有覆盖曲线ax2 有可能自动定位传说中的ax通过覆盖线ax2 请注意 在fig legend选项loc best 不可用 我需要在绘图区域内
  • 最长和最短的 HTML 字符实体名称是什么? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 管子周围有
  • Python C api - 函数重载

    我有许多接受不同参数的 C 函数 例如 foo i int a foo c char c 是否可以在 python C api 中重载这些函数 我尝试使用以下方法表 static PyMethodDef test methods foo P
  • 如何在“nodejs”中查找请求参数

    当我向nodejs服务器发送请求时 当请求发送到nodejs服务器时 我们如何找到请求查询中发送的参数 req param req params req query 所有给予未定义 也当我stringify req请求它给出错误 Conve
  • 如何使用apache poi读取Excel文件中的多行和多列?

    我想读取附加的 excel 文件 使用 Apache POI 在匹配问题类型 滑块后 想要传递相应类的值 根据问题类型创建不同的类 https i stack imgur com PRbo5 png 使用 Fillo Java Jar 它非
  • 如何构建 Boost::program_options

    我想使用 boost program options 安装boost后 我认为我必须单独构建program options http www boost org doc libs 1 43 0 more getting started wi
  • 在 pymssql 中重复死锁查询后更新失败

    我将 SQL Server 与 pymssql 一起使用 发现一个特别复杂的 SELECT 查询偶尔会被选为死锁受害者 因此 我将其包装在 while 循环中 以便在发生这种情况时重试事务 大致如下 while True try curso
  • PostgreSQL - 添加组角色后密码身份验证失败

    我对 PostgreSQL 还很陌生 我花了整个上午的时间试图让用户登录正常工作 现在我感到非常沮丧 因此 我有一个 PostGIS 数据库 版本 9 2 作为 OpenGeo 软件套件的一部分 我可以使用 postgres 用户访问数据库
  • 为什么 Visual Studio 只允许项目中的每个文件有一个链接?

    我希望在一个解决方案的多个不同项目中拥有一个文件 但是 Visual Studio 只允许每个解决方案有一个到该文件的链接 有办法解决这个问题吗 VS 项目中的单个文件有多个软链接会出现什么问题 Update 我已经添加了下面评论中所述的链
  • 使用 Serde 反序列化时有没有办法允许未知的枚举标签? [复制]

    这个问题在这里已经有答案了 我正在反序列化一个标记的枚举 derive Deserialize enum Foo A A B B C C 如果 Serde 遇到一个不存在的标签A B or C 那么就会抛出错误 有没有办法为未知标签添加包罗
  • 通过 Liquibase 从 SQL 脚本创建函数

    项目配置 数据库 MySQL 5 7 orm Hibernate 4 3 11 Final JPA 1 3 1 RELEASE 液体库 3 4 2 当我仅从 Liquibase 从 workBeanch 运行脚本时 我的问题不存在
  • php isset 或空中的偏移类型非法

    我的这段代码最初可以工作 但在重新启动计算机后就无法工作 我收到的错误是 警告 第 4 行 D xampp htdocs cookieboylive classes Session php 中 isset 中存在非法偏移类型或为空 我的网站
  • Spreadsheet_Excel_Writer数据输出损坏

    我使用 Spreadsheet Excel Writer 生成 xls 文件 它工作正常 直到我必须处理大量数据 在某些阶段 它只是写入一些无意义的字符并停止填充某些列 然而 有些列直到最后都是字段 通常是数字数据 我不太确定xls文档是如
  • C/C++ 中的简单“Hello World”内联汇编语言程序

    我使用 devcpp 和 borland c 编译器 asm mov ax 4 I O Func mov bx 1 Output func mov cx name address of the string mov dx 6 length
  • 使表格行可点击

    我有一个表格行 悬停时有背景颜色 当用户在背景颜色区域内单击时 它应该抓取行内锚标记的链接并将用户带到那里 我该如何做到这一点 tr td a href http somesite com Go Here a p To find about
  • NSMutableArray addObject,无法识别的选择器

    我正在尝试创建数组 城市 的数组 州 每当我尝试将项目添加到城市数组时 我都会收到此错误 NSInvalidArgumentException 原因 NSMutableArray addObject 无法识别的选择器发送到类 0x30309