NSMutableArray 无法添加到

2023-12-25

我以前也遇到过这样的问题,但没有得到满意的答案。

我有一个视图控制器,它有一个名为“counties”的属性,它是一个 NSMutableArray。我将深入导航屏幕,找到有关选择县进行地理搜索的视图。因此,搜索页面会深入到“选择县”页面。

I pass NSMutableArray *counties当我将第二个控制器推到导航堆栈上时,到第二个控制器。实际上,我使用指向第一个控制器的“counties”的指针设置了第二个控制器的“selectedCounties”属性(也是一个 NSMutableArray),如下所示。

当我去addObject不过,对此我明白了:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '*** -[NSCFArray insertObject:atIndex:]: mutating method sent to immutable object'

这是我的代码:

在搜索ViewController.h中:

@interface SearchViewController : UIViewController 
{
    ....
    NSMutableArray *counties;
}

....
@property (nonatomic, retain) NSMutableArray *counties;

在搜索ViewController.m中:

- (void)getLocationsView
{
    [keywordField resignFirstResponder];
    SearchLocationsViewController *locationsController = 
            [[SearchLocationsViewController alloc] initWithNibName:@"SearchLocationsView" bundle:nil];
    [self.navigationController pushViewController:locationsController animated:YES];
    [locationsController setSelectedCounties:self.counties];
    [locationsController release];
}

在 SearchLocations ViewController.h 中:

@interface EventsSearchLocationsViewController : UIViewController 
    <UITableViewDelegate, UITableViewDataSource>
{
    ...
    NSMutableArray *selectedCounties;

}

...
@property (nonatomic, retain) NSMutableArray *selectedCounties;

在 SearchLocationsViewController.m 中(这里的要点是,我们要切换表中每个元素在选定县列表中是否处于活动状态):

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if ([self.selectedCounties containsObject:[self.counties objectAtIndex:indexPath.row]]) {
        //we're deselcting!
        [self.selectedCounties removeObject:[self.counties objectAtIndex:indexPath.row]];
        cell.accessoryView = [[UIImageView alloc]
                              initWithImage:[UIImage imageNamed:@"red_check_inactive.png"]];
    }
    else {
        [self.selectedCounties addObject:[self.counties objectAtIndex:indexPath.row]];
        cell.accessoryView = [[UIImageView alloc]
                              initWithImage:[UIImage imageNamed:@"red_check_active.png"]];
    }
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

我们死在[self.selectedCounties addObject.... there.

现在,当我自己 NSLog 时[self.selectedCounties class],它告诉我这是一个 NSCFArray。

这是怎么发生的?我了解类捆绑(或者我认为我无论如何都了解),但这显然是一种特定类型,并且它在某些时候失去了它的子类化,从而杀死了整个事情。我完全不明白为什么会发生这种情况。


我的猜测是您没有正确分配数组(例如,NSMutableArray *arr = [[NSArray alloc] init],或者正在分配一个NSArray to the NSMutableArray多变的。你能发布初始化数组的代码吗?

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

NSMutableArray 无法添加到 的相关文章

  • Objective-C 中 typedef 枚举语句在哪里?

    我担心的一个基本问题 以下代码有效 并且 typedef 枚举被识别 但我收到一条警告消息 空声明中无用的存储类说明符 我在这里做错了什么吗 这是放置 typedef 枚举的最佳位置吗 import
  • ARC 可以与 Core Graphics 对象一起使用吗?

    我最近开始了一个使用自动引用计数 ARC 的新项目 当我分配 CALayer 的内容时 UIView view UIImage image view layer contents image CGImage 我收到一个错误 ARC 不允许将
  • 在 cocoa touch 中以编程方式将视图位置设置为右上角

    我需要确保一个视图 A 尺寸 200x200 始终与第二个视图 B 全屏尺寸 内的右上角对齐 我想确保无论设备方向如何 视图 A 都保留在该位置 事实是 当使用界面生成器来定位视图时 我对此没有任何问题 但我需要以编程方式构建它 我想我应该
  • iOS 以编程方式将 AVI 转换为 MP4 格式

    我的应用程序中有一个查询 因为我想将 AVI 格式的视频转换为 MP4 电影格式 所以有没有什么方法可以以编程方式执行此操作 任何代码片段将不胜感激 你需要使用AVAssetExportSession将视频转换为 mp4格式 下面方法转换
  • iPhone UI 带有 Tableview 或 Scrollview? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 创建一个包含 UIViewController 的 UIViewController

    我有一个UIViewController这允许我在视图中显示一些文本 我想添加一个输入法而不将其直接添加到此视图控制器中 此输入法将是一个按钮或一个UITextField 这个输入法会很多 但是每次都会用一个 从设置中选择它 所以我不会有一
  • APNS(Apple 推送通知服务器)的反馈服务

    我们正在使用Java作为推送通知提供商APNS I我能够将消息发送到APNS但我不知道如何获得该消息的反馈 请帮忙 反馈服务具有类似于用于发送推送通知的接口的二进制接口 您可以通过以下方式访问生产反馈服务feedback push appl
  • xcode 4 垃圾收集已删除?

    我正在学习 Xcode 和 Objective C 但是我正在阅读的书使用的是旧版本 3 2 的 Xcode 其中一章完全致力于内存和泄漏 说我需要通过 项目设置 gt 构建 打开垃圾收集 但是 我找不到垃圾收集设置 它已被删除还是我只是错
  • 在 iPhone 中保存会话数据

    我想将数据存储在应用程序中的不同点 以便应用程序中的对象可以访问这些数据 类似于 php 中的 session 或全局变量 我知道我可以使用 NSUserDefaults 但我不确定如何继续向它添加值然后访问它 例如 首先我想存储登录期间使
  • Apple 允许后台任务运行多长时间?

    我必须将一系列图像文件上传到数据库 因此 我偶然发现苹果后台执行指南 https developer apple com library ios documentation iPhone Conceptual iPhoneOSProgram
  • 一旦 webapp 添加到主屏幕,是否可以强制 iphone/ipod 更新 apple-touch-icon?

    我使用 safari 的所有推荐链接和元标记创建了一个网络应用程序 例如
  • 使用 .Net 创建 CalDAV 服务

    我想在我的应用程序中创建一个外部用户可以查看的日历 CalDAV 基本上是 WebDAV iCalendar 格式似乎得到了相对广泛的支持 尽管某些客户端 例如 Outlook 不太支持这种格式 不过对我来说完全是新的 我想外部发布事件 我
  • UITextField 的自定义字体在编辑模式下发生变化

    我有一个UITextField这是从 xib 加载的 在它的视图控制器中viewDidLoad方法中 我将字体设置为自定义值 该值在 plist file和所有 它显示良好 除非处于编辑模式 此时字体从我的自定义字体切换为默认字体 我认为这
  • SKAudioNode 崩溃:AVAudioPlayerNode.mm:333:开始:所需条件为 false:_engine->IsRunning()

    我有一个简单的 SKAudioNode let backgroundSound SKAudioNode fileNamed backgroundSound mp3 我用来玩backgroundSound runAction SKAction
  • 如何在 IOS safari 上禁用缓存?

    有没有办法禁用 ipad iphone 上的缓存 我想针对非缓存体验运行一些自动化测试 我刚刚偶然发现了一种在 iOS 上禁用 Safari 缓存的方法 iOS Open Settings 导航Safari gt 高级 Enable 网页检
  • UITableView行高不变

    我创建了一个自定义单元格 我有一系列字典 对于我需要创建的字典值UILables 每个单元可能包含不同数量的UILabels 所以按照我的习惯UITableViewCell类我就是这样做的 void generateCell BOOL is
  • 停止 ARC 在空闲时释放对象

    我在 Objective C 中遇到内存管理问题 我一直在阅读高级内存管理编程指南 https developer apple com library mac documentation Cocoa Conceptual MemoryMgm
  • NSAttributedString 的 AutoLayout 行高计算错误

    我的应用程序从 API 中提取 HTML 将其转换为NSAttributedString 为了允许可点击的链接 并将其写入自动布局表中的一行 问题是 每当我调用这种类型的单元格时 高度都会被错误计算并且内容会被截断 我尝试了不同的行高计算实
  • 如何检测按下的返回键并使用 UIKeyInput 协议对其进行响应?

    我有一个表视图 显示我希望用户能够编辑的列表 为了节省空间 并且让我的视图更容易看清 我创建了一个符合 UIKeyInput 协议的自定义工具栏 这样我就可以拉起键盘而无需使用任何文本字段 到目前为止 一切都很好 我有一个可变字符串正在处理
  • 渐变方向从左到右

    我完全被这个问题难住了 它应该如此简单 以至于让我发疯 我正在使用这个苹果反射教程 苹果反射示例 http developer apple com library ios samplecode Reflection Listings MyV

随机推荐

  • 规范:变量赋值中空白标识符的用途是什么? [复制]

    这个问题在这里已经有答案了 我找到了这个变量声明var PropertyLoadSaver Doubler nil https github com golang appengine blob master datastore datast
  • 如何根据一天中的特定时间而不是每秒或分钟触发 MS Access 代码

    我一直在努力实现这一目标 也许我已经接近了 我在 Access 中有一些代码需要在一天中的特定时间运行 我不想使用 Windows 任务计划程序 所以我有这个功能 Public Function RunProgram Dim RunDate
  • Karma 没有选择更改,必须运行测试两次

    我在跑步Jasmine测试Karma 最新 2014 年 12 月 0 日 来自智能IDEA 最新 13 1 2 OS X IntelliJ 仅使用 Karma 插件指向我的 karma 安装 usr local lib node modu
  • 在 AngularJS 中访问 Spring MVC 模型对象

    我有一个使用 JAVA Spring MVC 后端 和 AngularJS 前端 JSP 用于视图 和 MySQL DB 构建的 Spring MVC Web 表单 用户可以在填写表格后提交表格并搜索现有条目 提交条目后 还会向用户发送一封
  • Fire and no-wait (without do!) vs Fire and wait (do!) 有巨大的性能差异吗?

    以下代码运行大约需要 20 秒 然而 取消注释后不到一秒钟do 为什么会有这么大的差异呢 Update 使用时需要9秒ag Add 我已经更新了代码 open FSharpx Control let test let ag new Bloc
  • kafka 上的无限期日志保留

    我正在使用 kafka 进行事件溯源 我意识到我们仍然需要配置日志保留时间 即log retention hours 如果我想无限期保留所有消息 最好使用什么值 示例配置为log retention bytes设置为 1 我可以在中也使用
  • TabWidget在Android底层不稳定?为什么?

    我将 tabWidget 设置在底部 当我想编辑编辑文本时 键盘会升起 但选项卡小部件位于键盘上方 为了支持多屏幕 我设置了 android layout weight 1 0 之后 我遇到了这个问题 我在下面添加了布局代码 有什么想法可以
  • Mysql 密码已过期。无法连接

    我刚刚擦除了我的 Mac 并重新安装了 El Capitan 我现在很难连接到Mysql 完成 Web 服务器设置过程后 我创建了一个简单的 PHP 测试文件 当我运行它时 我收到此错误 Warning mysqli mysqli HY00
  • 如何在 PyQt4 中杀死单次 QtCore.QTimer?

    因此 在我的应用程序中 我创建了一个QtCore QTimer对象 然后调用singleShot方法在 60 秒后调用一个函数 现在 在任何给定的时间点 如果我需要致电singleShot再次使用该方法并防止以前的singleShot方法生
  • 文件 MD5 校验和

    In 这个问题 https stackoverflow com questions 392657 md5 hashing in delphi 2009提到了wcrypt2 我需要的只是计算文件的MD5 如果我可以计算它而不需要保存它那就完美
  • 中间件和 Blazor 组件的范围

    我正在开发服务器端 Blazor 应用程序 并遇到了有关范围服务的一些问题 为了简单起见 我使用默认的 Blazor 模板 带有计数器的模板 重新创建了我的问题 我有一个服务 CounterService 它将计数器初始化为 1 并公开该计
  • 无法设置经度从 -180 到 0 的 LatLngBounds

    当尝试设置新的 LatLngBounds 时 对于世界的西南四分之一 西南经度自动设置在世界的另一侧 导致 LatLngBounds 不一致 西南比东北更东 a new google maps LatLng 90 180 true a ln
  • 为什么 C#.net 中的表达式主体不能使用 int、double 或 bool 类型的属性?

    我有一个功能 private string GetPropertyName Expression
  • Xcode 无法解析依赖项 Firebase - GoogleAppMeasurement 与要求不匹配

    我是 Xcode 编码新手 我尝试在我的项目上安装 Firebase 但遇到一个错误 我不知道如何解决 我已遵循 Firebase 的所有说明 但仍然存在问题 首要问题 无法解析依赖关系 因为 GoogleAppMeasurement 没有
  • PluginApplicationException:无法应用插件类“FlutterPlugin”

    我遇到了奇怪的错误 升级 Android Studio 后 我创建了一个Android项目 运行成功 然后我尝试导入Flutter Module到这个Android项目 我有这些例外 块引用 原因 org gradle api intern
  • Qt 中的 ODBC 驱动程序使用

    我想使用读取和写入mdb文件 Ms Access 文件 我是全新使用的ODBC in Qt 那么有人可以帮助我知道我是否需要下载驱动程序 如果是的话我可以从哪里下载 如果您了解连接性 那么我们将提供任何帮助 如果您需要使用 Qt 访问 MS
  • scanf 并将 char 保留为整数

    我就是无法理解 Char 是整数 对吗 所以我可以做 int var scanf d var I 65 printf c var o A 为什么这样做是错误的 char var scanf d var I A printf d var O
  • eslint-config-airbnb 扩展名“.js”的文件中不允许使用 JSX

    我已经安装了eslint config airbnb https github com airbnb javascript tree master packages eslint config airbnb应该为 React 预先配置 ES
  • 如何在 Codesys v3 中创建指向函数的指针

    你能给我一个例子来说明如何在我的库中声明函数指针吗 如何将函数指针传递给外部库 TL DR 在 CoDeSys v3 中可以使用 Totes 而且非常简单 在 CoDeSys 中 函数 实际上是存储在函数表中的函数指针 在 CodeSys
  • NSMutableArray 无法添加到

    我以前也遇到过这样的问题 但没有得到满意的答案 我有一个视图控制器 它有一个名为 counties 的属性 它是一个 NSMutableArray 我将深入导航屏幕 找到有关选择县进行地理搜索的视图 因此 搜索页面会深入到 选择县 页面 I