- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在强制升级到 Swift 2.x 之前,我的应用程序运行良好。我下面的代码是在 IBAction 上执行的,用于“折叠”单元格的按钮,例如它用另一个布局替换它,然后尝试重新加载单元格,由于各种原因,我被迫将每个单元格包含在它自己的部分中(因此,我正在重新加载该部分)。我试过将各种变量输出到终端;输入是正确的。我也试过将它包装在 .beginUpdates() 和 .endUpdates() 中,当在调试器中遍历它时,它只会在 .endUpdates() 调用而不是 .reloadSections() 调用上抛出以下异常。我还尝试用对 .reloadData() 的全面调用替换 .reloadSections() 并且我收到相同的堆栈跟踪,让我相信它在某种程度上是 TableView 对象的内部。
// Set Selected Patient Configuration to "Collapsed"
patientList.patients[ sender.tag ].updateConfiguration( collapsedConfiguration )
let animation = UITableViewRowAnimation.Automatic
// Retrieve Current Table View and Animate Changes
let tableView = self.superview!.superview as! UITableView
// Reload Section with Animation
tableView.reloadSections(NSIndexSet( index: sender.tag ), withRowAnimation: animation )
我的代码将评估支持数据的折叠状态,并在完整 View 或折叠 View 中绘制它。
*** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM insertObject:atIndex:]: index 2 beyond bounds [0 .. 0]'
*** First throw call stack:
(
0 CoreFoundation 0x00e2fa84 __exceptionPreprocess + 180
1 libobjc.A.dylib 0x03235e02 objc_exception_throw + 50
2 CoreFoundation 0x00cdd211 -[__NSArrayM insertObject:atIndex:] + 881
3 Foundation 0x01510134 -[NSKeyValueSlowMutableArray insertObject:atIndex:] + 115
4 CoreFoundation 0x00d38630 -[NSMutableArray insertObjects:count:atIndex:] + 192
5 CoreFoundation 0x00d38322 -[NSMutableArray insertObjectsFromArray:range:atIndex:] + 322
6 CoreFoundation 0x00d381c2 -[NSMutableArray addObjectsFromArray:] + 834
7 UIKit 0x024f4d4f -[UIRuntimeOutletCollectionConnection performConnect] + 964
8 UIKit 0x024f4daf -[UIRuntimeOutletCollectionConnection connect] + 33
9 libobjc.A.dylib 0x0324a00c -[NSObject performSelector:] + 62
10 CoreFoundation 0x00d60571 -[NSArray makeObjectsPerformSelector:] + 273
11 UIKit 0x021b06f6 -[UINib instantiateWithOwner:options:] + 2102
12 UIKit 0x01eeed6c -[UITableView _dequeueReusableViewOfType:withIdentifier:] + 457
13 UIKit 0x01eef173 -[UITableView dequeueReusableCellWithIdentifier:] + 48
14 Halo 0x001b5174 _TFC4Halo18MainViewController9tableViewfS0_FTCSo11UITableView21cellForRowAtIndexPathCSo11NSIndexPath_CSo15UITableViewCell + 2356
15 Halo 0x001be459 _TToFC4Halo18MainViewController9tableViewfS0_FTCSo11UITableView21cellForRowAtIndexPathCSo11NSIndexPath_CSo15UITableViewCell + 89
16 UIKit 0x01f03a19 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 782
17 UIKit 0x01f03b47 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 90
18 UIKit 0x022568cc -[_UITableViewUpdateSupport(Private) _setupAnimationsForNewlyInsertedCells] + 8353
19 UIKit 0x0226181a -[_UITableViewUpdateSupport _setupAnimations] + 161
20 UIKit 0x01ed7fd3 -[UITableView _updateWithItems:updateSupport:] + 3653
21 UIKit 0x01ecfc91 -[UITableView _endCellAnimationsWithContext:] + 17491
22 UIKit 0x01eea538 -[UITableView _updateSections:updateAction:withRowAnimation:headerFooterOnly:] + 460
23 UIKit 0x01eea625 -[UITableView reloadSections:withRowAnimation:] + 73
24 Halo 0x00105e10 _TFC4Halo28FullPatientViewTableViewCell19collapseButtonPressfS0_FCSo8UIButtonT_ + 6208
25 Halo 0x0010645d _TToFC4Halo28FullPatientViewTableViewCell19collapseButtonPressfS0_FCSo8UIButtonT_ + 61
26 libobjc.A.dylib 0x0324a0b5 -[NSObject performSelector:withObject:withObject:] + 84
27 UIKit 0x01d8016a -[UIApplication sendAction:to:from:forEvent:] + 118
28 UIKit 0x01d800e9 -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 64
29 UIKit 0x01f1e19f -[UIControl sendAction:to:forEvent:] + 79
30 UIKit 0x01f1e51f -[UIControl _sendActionsForEvents:withEvent:] + 408
31 UIKit 0x01f1d525 -[UIControl touchesEnded:withEvent:] + 714
32 UIKit 0x022efeaa _UIGestureRecognizerUpdate + 12763
33 UIKit 0x01dfabdf -[UIWindow _sendGesturesForEvent:] + 1559
34 UIKit 0x01dfc298 -[UIWindow sendEvent:] + 1137
35 UIKit 0x01da1efb -[UIApplication sendEvent:] + 266
36 UIKit 0x01d77cb6 _UIApplicationHandleEventQueue + 7802
37 CoreFoundation 0x00d49d1f __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 15
38 CoreFoundation 0x00d3f9ab __CFRunLoopDoSources0 + 523
39 CoreFoundation 0x00d3edc8 __CFRunLoopRun + 1032
40 CoreFoundation 0x00d3e706 CFRunLoopRunSpecific + 470
41 CoreFoundation 0x00d3e51b CFRunLoopRunInMode + 123
42 GraphicsServices 0x058c0664 GSEventRunModal + 192
43 GraphicsServices 0x058c04a1 GSEventRun + 104
44 UIKit 0x01d7e1eb UIApplicationMain + 160
45 Halo 0x0011eb6c main + 140
46 libdyld.dylib 0x03ceca21 start + 1
47 ??? 0x00000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
堆栈对我帮助不大,我什至无法理解开头的消息:“insertObject:atIndex:]: index 2 beyond bounds [0 .. 0]。”在这个示例和我使用单个表条目的测试中,没有任何地方应该有索引“2”。如果您能提供任何帮助,我们将不胜感激。
这是我对此异常的“bt”:
* thread #1: tid = 0xc9ca7, 0x0401969a libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x0401969a libsystem_kernel.dylib`__pthread_kill + 10
frame #1: 0x03fe4634 libsystem_pthread.dylib`pthread_kill + 101
frame #2: 0x03d9339d libsystem_c.dylib`abort + 156
frame #3: 0x04034ae7 libc++abi.dylib`abort_message + 151
frame #4: 0x04055683 libc++abi.dylib`default_terminate_handler() + 300
frame #5: 0x032360b6 libobjc.A.dylib`_objc_terminate() + 108
frame #6: 0x04052d0d libc++abi.dylib`std::__terminate(void (*)()) + 14
frame #7: 0x0405293e libc++abi.dylib`__cxa_rethrow + 103
frame #8: 0x03235fad libobjc.A.dylib`objc_exception_rethrow + 47
frame #9: 0x00d3e7d0 CoreFoundation`CFRunLoopRunSpecific + 672
frame #10: 0x00d3e51b CoreFoundation`CFRunLoopRunInMode + 123
frame #11: 0x058c0664 GraphicsServices`GSEventRunModal + 192
frame #12: 0x058c04a1 GraphicsServices`GSEventRun + 104
frame #13: 0x01d7e1eb UIKit`UIApplicationMain + 160
* frame #14: 0x0011eb6c Halo`main + 140 at AppDelegate.swift:26
frame #15: 0x03ceca21 libdyld.dylib`start + 1
根据请求,这里是输出后的代码:
// Retrieve Current Table View and Animate Changes
let tableView = self.superview!.superview as! UITableView
// Test Output
print( "tableView.numberOfSections: \(tableView.numberOfSections)" )
print( "tableView.numberOfRowsInSection( sender.tag ): \(tableView.numberOfRowsInSection( sender.tag ))" )
// Reload Section with Animation
tableView.reloadSections(NSIndexSet( index: sender.tag ), withRowAnimation: animation )
tableView.numberOfSections: 1
tableView.numberOfRowsInSection( sender.tag ): 1
最佳答案
堆栈跟踪的这一部分(可能)意味着您有一个 IBOutletCollection
,并且 UIKit 现在正在尝试从 Storyboard或 nib 填充它:
7 UIKit 0x024f4d4f -[UIRuntimeOutletCollectionConnection performConnect] + 964
8 UIKit 0x024f4daf -[UIRuntimeOutletCollectionConnection connect] + 33
这部分看起来像是在尝试将绑定(bind)对象添加到现有数组:
2 CoreFoundation 0x00cdd211 -[__NSArrayM insertObject:atIndex:] + 881
3 Foundation 0x01510134 -[NSKeyValueSlowMutableArray insertObject:atIndex:] + 115
4 CoreFoundation 0x00d38630 -[NSMutableArray insertObjects:count:atIndex:] + 192
5 CoreFoundation 0x00d38322 -[NSMutableArray insertObjectsFromArray:range:atIndex:] + 322
6 CoreFoundation 0x00d381c2 -[NSMutableArray addObjectsFromArray:] + 834
所有这些都意味着该错误可能与您发布的代码无关,而是与您的 nib 以及它如何与绑定(bind)的属性交互有关。
看看您是否正在使用 IBOutletCollection
,如果是,请开始调试它所绑定(bind)的东西。
关于ios - swift 2 : UITableView 'reloadSections' method crash in iOS 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33427120/
我正在尝试重新加载部分并更新部分中的单元格数量,但每次尝试时都会出现错误和崩溃。这是我正在使用的代码: import UIKit import CalendarView import SwiftMom
我在表格 View 中有两个部分。 第 0 部分中的行会在收到远程通知(插入)或计时器过期(删除)时更改。 第 1 部分始终有 8 行,并且会在用户刷新时更改,所有 8 个项目都会更改。 我正在尝试在
我正在使用 Realm Notification 通过插入、修改和删除来更新我的表。 self.results = realm.objects(PostObject.self).sorted(byKe
我正在尝试构建一个类似于 iOS 原生提醒应用的应用。哪里有带有页眉和页脚的项目列表。每个单元格都包含一个 UITextView,它会在用户键入时动态更改单元格高度。页脚 View 包含相同的单元格
由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“尝试删除第 100 节,但更新前只有 7 个节”*** 首先抛出调用栈: 我正在尝试制作可折
我的问题如下:有一个由标题组成的表格。当您单击标题时,它会在之后重新启动 [self.tableView reloadSections: [NSIndexSet indexSetWithIndex:
我有一个带有 UITableViewController 的应用程序,最初只有一个部分和一行(其中显示“正在加载...”)。它从互联网获取一些数据,然后进行以下调用: [tableView reloa
我有一个包含多个部分的 UITableView,部分的数量是动态的,也就是说,它们可以随时增加。在 TableView 上重新加载带有动画的部分,其中部分的数量没什么大不了的。我只是这样称呼: [no
当我点击显示/隐藏内容时,我有下一个代码。 func showHideAssets() { isOpenHiddenAssets = !isOpenHiddenAssets tab
由于我们的设计师是个虐待狂,我有一个带有分段控件的 UITableView,可以在不同提要中的两种不同类型的单元格之间切换。这些单元格使用不同的标识符和类出队——这一切都很好。这些单元格共享一个父级但
我有一个包含两个部分(顶部和底部)的 UITableView。当顶部部分(第 0 部分)中的项目被“选中”时,我将它们移动到底部部分(第 1 部分),反之亦然。除了动画,一切都很好。 我正在使用以下应
我的问题看起来很奇怪。我正在使用 Swift 和 iOS9+。 我在 Storyboard 中设置了一个 UIViewController,其中包含一些 View 和一个 tableview。 ( V
我想用一些有趣的动画重新加载 UICollectionView。在 UITableView 中有一个名为 reloadSections:withRowAnimation 的方法。但是在 UIColle
我需要执行 [[self tableView] reloadSections:[NSIndexSet indexSetWithIndex:1] withRowAnimation:UITableView
我想显示一个具有多个部分的表格,并且最初只显示 3 个部分元素。当用户点击节页脚时,节页脚会丢失(变为零),并且该节的所有元素将显示给用户。 因此,当用户点击部分页脚时,我调用以下代码: -(void
我有一个使用 Storyboard设计的静态表格 View 。每当我选择一个单元格并调用 reloadSections:withRowAnimation: 时,它都会导致其上方的两个单元格消失,但显示
我正在为我的应用程序的设置 View 使用带有静态单元格的 UITableView。 此表的一个部分包含两个单元格,第二个单元格仅在第一个单元格中包含的 UISwitch 打开时可见。 所以 UISw
尝试展开各个部分,每个部分在展开时都会有两行。它正在崩溃。以下是正在尝试的代码。 -(NSInteger) numberOfSectionsInTableView:(UITableView *)tab
I created 3 headerViews and added check box, when select section0 check box i want to expand cells i
我构建了一个测试目的应用程序,以在重新加载表格视图时测试这三种方法的性能。 // // ViewController.m // TableViewSample // // Created by
我是一名优秀的程序员,十分优秀!