A_t*_*ter 2 uitableview ios swift
我有两个页面,每个页面都有一个tableView.当通过push segue按下单元格时,第一个tableview导致第二个tableView.我使用"嵌入"将导航控制器应用到第一个视图控制器,它给第二个视图一个后退按钮,该按钮适用于99%的应用程序.出于某种原因,如果我一直向下滚动到第二个tableview的底部,然后按下后退按钮,应用程序崩溃时会出现以下错误:Thread 1: EXC_BAD_ACCESS.控制台的回溯是这样的:
(lldb) bt
* thread #1: tid = 0x9517c, 0x000000011115a00b libobjc.A.dylib`objc_msgSend + 11, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
frame #0: 0x000000011115a00b libobjc.A.dylib`objc_msgSend + 11
frame #1: 0x000000010ff1f462 UIKit`-[UIScrollView(UIScrollViewInternal) _notifyDidScroll] + 56
frame #2: 0x000000010ff0fa42 UIKit`-[UIScrollView setContentOffset:] + 645
frame #3: 0x000000010ff79b5f UIKit`-[UITableView setContentOffset:] + 362
frame #4: 0x000000010ff24360 UIKit`-[UIScrollView(UIScrollViewInternal) _adjustContentOffsetIfNecessary] + 1445
frame #5: 0x000000010ff214ef UIKit`-[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:] + 417
frame #6: 0x000000010ff102d6 UIKit`-[UIScrollView removeFromSuperview] + 32
frame #7: 0x000000010fee9e39 UIKit`-[UIView dealloc] + 404
frame #8: 0x00000001111588cd libobjc.A.dylib`(anonymous namespace)::AutoreleasePoolPage::pop(void*) + 591
frame #9: 0x000000010f045da6 CoreFoundation`_CFAutoreleasePoolPop + 22
frame #10: 0x000000010f079ef3 CoreFoundation`__CFRunLoopRun + 2051
frame #11: 0x000000010f079486 CoreFoundation`CFRunLoopRunSpecific + 470
frame #12: 0x0000000113e329f0 GraphicsServices`GSEventRunModal + 161
frame #13: 0x000000010fe8b420 UIKit`UIApplicationMain + 1282
* frame #14: 0x000000010eb9122e appname`top_level_code + 78 at AppDelegate.swift:13
frame #15: 0x000000010eb9126a appname`main + 42 at AppDelegate.swift:0
frame #16: 0x000000011191d145 libdyld.dylib`start + 1
(lldb)
Run Code Online (Sandbox Code Playgroud)
如果我从第二个tableView的底部稍微向上滚动,程序不会崩溃.我添加导航控制器的方法是单击第一个视图控制器并使用"嵌入"命令.崩溃发生时,它会将我带到AppDelegate文件,如下所示:

什么可能导致该程序以这种特定方式崩溃?
错误消息告诉我们UIScrollView(它是TableView的一部分)正在尝试向其委托发送消息,该委托似乎在该时间点被释放.
UITableView当你按下后退按钮时似乎没有被释放,但是UIViewController.
这里提出了一个非常类似的问题:iOS SDK中的UIScrollView EXC_BAD_ACCESS崩溃
第一步追查这个问题将要实施dealloc您的方法UIViewController子类,设置delegate的UITableView零.
您还应该打开Zombies(在ios6上使用Xcode 5跟踪僵尸)以获取有关哪个解除分配的实例正在接收此消息的更多信息.
| 归档时间: |
|
| 查看次数: |
1484 次 |
| 最近记录: |