草庐IT

ios - 集合 <__NSArrayM> 在枚举时发生了变异。

coder 2024-01-15 原文

Application Specific Information:
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x17204b070> was mutated while being enumerated.'
Last Exception Backtrace:
0   CoreFoundation                      0x0000000186acefe0 __exceptionPreprocess + 124
1   libobjc.A.dylib                     0x0000000185530538 objc_exception_throw + 56
2   CoreFoundation                      0x0000000186acea30 __NSFastEnumerationMutationHandler + 128
3   UIKit                               0x000000018cc22f04 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) clearGestureRecognizers:] + 220
4   UIKit                               0x000000018cc22d78 -[UITextInteractionAssistant(UITextInteractionAssistant_Internal) setGestureRecognizers] + 88
5   UIKit                               0x000000018d1d1d38 -[UIGestureRecognizerTarget _sendActionWithGestureRecognizer:] + 64
6   UIKit                               0x000000018d1d556c _UIGestureRecognizerSendTargetActions + 124
7   UIKit                               0x000000018cd8f470 _UIGestureRecognizerSendActions + 252
8   UIKit                               0x000000018cc31380 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 720
9   UIKit                               0x000000018d1c5810 _UIGestureEnvironmentUpdate + 988
10  UIKit                               0x000000018d1c53e0 -[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:] + 404
11  UIKit                               0x000000018d1c468c -[UIGestureEnvironment _updateGesturesForEvent:window:] + 268
12  UIKit                               0x000000018cc2f70c -[UIWindow sendEvent:] + 3164
13  UIKit                               0x000000018cc0033c -[UIApplication sendEvent:] + 340
14  UIKit                               0x000000018d3fa014 __dispatchPreprocessedEventFromEventQueue + 2400
15  UIKit                               0x000000018d3f4770 __handleEventQueue + 4268
16  UIKit                               0x000000018d3f4b9c __handleHIDEventFetcherDrain + 148
17  CoreFoundation                      0x0000000186a7d42c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
18  CoreFoundation                      0x0000000186a7cd9c __CFRunLoopDoSources0 + 540
19  CoreFoundation                      0x0000000186a7a9a8 __CFRunLoopRun + 744
20  CoreFoundation                      0x00000001869aada4 CFRunLoopRunSpecific + 424
21  GraphicsServices                    0x0000000188414074 GSEventRunModal + 100
22  UIKit                               0x000000018cc65058 UIApplicationMain + 208
23  MyApp                            0x000000010001d0ac main (main.m:16)
24  libdyld.dylib                       0x00000001859b959c start + 4

最佳答案

这个错误可能有以下几种原因:

第一个原因

您可能正在尝试使用(内部)For Each Loop 更新或删除数组中的元素。

  • 不要更新或删除 For Each Loop 中的元素。

  • 如果您不想对数组进行数据操作,请使用普通的 for 循环,例如:

    int i
    for (i=0; i < array.count; i++) {
       // update or remove operation
    }
    

第二个原因

您正在尝试修改(更新或删除)非可变数组中的元素。您的错误消息表明,您正在使用 Objective-C 编程语言。

在 Objective-C 中,有两种集合:可变的和不可变的。

  • NSArray 是不可变的集合类型,而
  • NSMutableArray 是可变类型的集合

使用 NSMutableArray 对数组执行数据操作(更新或删除元素)。

关于ios - 集合 <__NSArrayM> 在枚举时发生了变异。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44648610/

有关ios - 集合 <__NSArrayM> 在枚举时发生了变异。的更多相关文章

  1. ruby-on-rails - 如何从 format.xml 中删除 <hash></hash> - 2

    我有一个对象has_many应呈现为xml的子对象。这不是问题。我的问题是我创建了一个Hash包含此数据,就像解析器需要它一样。但是rails自动将整个文件包含在.........我需要摆脱type="array"和我该如何处理?我没有在文档中找到任何内容。 最佳答案 我遇到了同样的问题;这是我的XML:我在用这个:entries.to_xml将散列数据转换为XML,但这会将条目的数据包装到中所以我修改了:entries.to_xml(root:"Contacts")但这仍然将转换后的XML包装在“联系人”中,将我的XML代码修改为

  2. ruby-on-rails - rspec should have_select ('cars' , :options => ['volvo' , 'saab' ] 不工作 - 2

    关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion在首页我有:汽车:VolvoSaabMercedesAudistatic_pages_spec.rb中的测试代码:it"shouldhavetherightselect"dovisithome_pathit{shouldhave_select('cars',:options=>['volvo','saab','mercedes','audi'])}end响应是rspec./spec/request

  3. ruby - 如何验证 IO.copy_stream 是否成功 - 2

    这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下

  4. ruby-on-rails - Nokogiri:使用 XPath 搜索 <div> - 2

    我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll

  5. Ruby 文件 IO 定界符? - 2

    我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的

  6. ruby-on-rails - 启用 Rack::Deflater 时 ETag 发生变化 - 2

    在启用Rack::Deflater来gzip我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的ETag在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送304。这在没有启用Rack::Deflater的情况下有效,我已经验证页面源没有改变。我正在运行一个使用thin作为Web服务器的Rails应用程序。Gemfile.lockhttps://gist.github.com/2510816有没有什么方法可以让我从Rack中间件获得更多的输出,这样我就可以看到发生了什么?提前致谢。 最佳答案

  7. Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting - 2

    1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里

  8. postman——集合——执行集合——测试脚本——pm对象简单示例02 - 2

    //1.验证返回状态码是否是200pm.test("Statuscodeis200",function(){pm.response.to.have.status(200);});//2.验证返回body内是否含有某个值pm.test("Bodymatchesstring",function(){pm.expect(pm.response.text()).to.include("string_you_want_to_search");});//3.验证某个返回值是否是100pm.test("Yourtestname",function(){varjsonData=pm.response.json

  9. ruby-on-rails - 没有参数的 `<<`(小于两倍)是什么意思? - 2

    我在一个我想在formtasticGem中覆盖的方法中找到了这个。该方法如下所示:defto_htmlinput_wrappingdohidden_field_html是什么意思?在第三行做什么?我知道它对数组有什么作用,但在这里我不知道。 最佳答案 你可以这样读:hidden_field_htmllabel_with_nested_checkbox是连接到hidden_​​field_html末尾的参数-为了“清晰”,他们将其分成两行 关于ruby-on-rails-没有参数的`

  10. ruby - 当 attr_accessor 在类方法中时会发生什么? - 2

    所以我想到了这个,想知道当下面的一些事情完成后会发生什么。classTestdefself.abcattr_accessor:Johnendendobject=Test.newputs"beforecallingclassmethodabc:#{object.class.instance_methods(false)}"Test.abcputs"aftercallingclassmethodabc:#{object.class.instance_methods(false)}"这里我检查的是,getter和setter方法是否以这种方式创建。如果是这样,是那些实例方法或类方法。首先我创

随机推荐