- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 uitableviewcontroller,我正在加载一个 uiwebview 作为 tableview 的 viewForFooterInSection
这个 webview 有一些正在加载的 html 内容。每当我尝试执行此操作时,应用程序都会崩溃
[self.tableView beginUpdates];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationTop];
[self.tableView endUpdates];
附上崩溃日志
Incident Identifier: DA08DEDA-3566-4A56-938A-57F4BCDF64F1
CrashReporter Key: ef8a5122f6b5431e4b29802596ec279644f97bd4
Hardware Model: iPod4,1
Process: sample [955]
Path: /var/mobile/Applications/A0B6D2C6-AA93-4D24-9C7F-666B8C7F94B4/sample.app/sample
Identifier: sample
Version: ??? (???)
Code Type: ARM (Native)
Parent Process: launchd [1]
Date/Time: 2012-07-24 13:07:10.396 +0530
OS Version: iPhone OS 4.3.5 (8L1)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000c
Crashed Thread: 0
Thread 0 name: Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0 WebCore 0x35fbc900 WebCore::TileCache::doLayoutTiles() + 24
1 WebCore 0x3609bed8 -[TileHostLayer renderInContext:] + 28
2 QuartzCore 0x336cc948 -[CALayer _renderSublayersInContext:] + 220
3 QuartzCore 0x336cbada -[CALayer renderInContext:] + 1086
4 QuartzCore 0x336cc948 -[CALayer _renderSublayersInContext:] + 220
5 QuartzCore 0x336cbada -[CALayer renderInContext:] + 1086
6 QuartzCore 0x336cc948 -[CALayer _renderSublayersInContext:] + 220
7 QuartzCore 0x336cbada -[CALayer renderInContext:] + 1086
8 QuartzCore 0x336cc948 -[CALayer _renderSublayersInContext:] + 220
9 QuartzCore 0x336cbada -[CALayer renderInContext:] + 1086
10 QuartzCore 0x336cc948 -[CALayer _renderSublayersInContext:] + 220
11 QuartzCore 0x336cbada -[CALayer renderInContext:] + 1086
12 UIKit 0x35b6b2dc -[_UITableViewUpdateSupport(Private) _imageViewForView:] + 68
13 UIKit 0x35b6a66a -[_UITableViewUpdateSupport(Private) _setupDeleteAnimationForFooterInSection:withTargetRect:forUpdateItem:] + 370
14 UIKit 0x35a7f91a -[_UITableViewUpdateSupport(Private) _setupAnimationsForDeletedHeadersAndFooters] + 1862
15 UIKit 0x35a78be6 -[_UITableViewUpdateSupport initWithTableView:updateItems:oldRowData:newRowData:oldRowRange:newRowRange:context:] + 398
16 UIKit 0x35a77dba -[UITableView(_UITableViewPrivate) _updateWithItems:withOldRowData:oldRowRange:newRowRange:context:] + 966
17 UIKit 0x35a7746c -[UITableView(_UITableViewPrivate) _endCellAnimationsWithContext:] + 4744
18 UIKit 0x35a812f2 -[UITableView endUpdatesWithContext:] + 22
19 UIKit 0x35a812ce -[UITableView endUpdates] + 10
20 sample 0x00007574 -[TableViewController tableView:didSelectRowAtIndexPath:] (TableViewController.m:188)
21 UIKit 0x3599c514 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 656
22 UIKit 0x35a000e4 -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 124
23 Foundation 0x307ee6ce __NSFireDelayedPerform + 362
24 CoreFoundation 0x34e69a40 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 8
25 CoreFoundation 0x34e6bec4 __CFRunLoopDoTimer + 844
26 CoreFoundation 0x34e6c83e __CFRunLoopRun + 1082
27 CoreFoundation 0x34dfcebc CFRunLoopRunSpecific + 224
28 CoreFoundation 0x34dfcdc4 CFRunLoopRunInMode + 52
29 GraphicsServices 0x30de0418 GSEventRunModal + 108
30 GraphicsServices 0x30de04c4 GSEventRun + 56
31 UIKit 0x35976d62 -[UIApplication _run] + 398
32 UIKit 0x35974800 UIApplicationMain + 664
33 sample 0x000024ac main (main.m:16)
34 sample 0x00002440 start + 32
Thread 1 name: Dispatch queue: com.apple.libdispatch-manager
Thread 1:
0 libsystem_kernel.dylib 0x36906fbc kevent + 24
1 libdispatch.dylib 0x36aa5032 _dispatch_mgr_invoke + 706
2 libdispatch.dylib 0x36aa603a _dispatch_queue_invoke + 86
3 libdispatch.dylib 0x36aa55ea _dispatch_worker_thread2 + 186
4 libsystem_c.dylib 0x3663558a _pthread_wqthread + 258
5 libsystem_c.dylib 0x36635bbc start_wqthread + 0
Thread 2 name: WebThread
Thread 2:
0 libsystem_kernel.dylib 0x36903c00 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x36903758 mach_msg + 44
2 CoreFoundation 0x34e6a2b8 __CFRunLoopServiceMachPort + 88
3 CoreFoundation 0x34e6c562 __CFRunLoopRun + 350
4 CoreFoundation 0x34dfcebc CFRunLoopRunSpecific + 224
5 CoreFoundation 0x34dfcdc4 CFRunLoopRunInMode + 52
6 WebCore 0x35f1a27e _ZL12RunWebThreadPv + 382
7 libsystem_c.dylib 0x3663430a _pthread_start + 242
8 libsystem_c.dylib 0x36635bb4 thread_start + 0
Thread 3:
0 libsystem_kernel.dylib 0x36903c00 mach_msg_trap + 20
1 libsystem_kernel.dylib 0x36903758 mach_msg + 44
2 CoreFoundation 0x34e6a2b8 __CFRunLoopServiceMachPort + 88
3 CoreFoundation 0x34e6c562 __CFRunLoopRun + 350
4 CoreFoundation 0x34dfcebc CFRunLoopRunSpecific + 224
5 CoreFoundation 0x34dfcdc4 CFRunLoopRunInMode + 52
6 Foundation 0x307937f6 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:] + 206
7 Foundation 0x30786382 -[NSThread main] + 38
8 Foundation 0x307f85c6 __NSThread__main__ + 966
9 libsystem_c.dylib 0x3663430a _pthread_start + 242
10 libsystem_c.dylib 0x36635bb4 thread_start + 0
Thread 4 name: com.apple.CFSocket.private
Thread 4:
0 libsystem_kernel.dylib 0x36905c60 __select + 20
1 CoreFoundation 0x34e6f8f2 __CFSocketManager + 582
2 libsystem_c.dylib 0x3663430a _pthread_start + 242
3 libsystem_c.dylib 0x36635bb4 thread_start + 0
Thread 5:
0 libsystem_kernel.dylib 0x369063ec __workq_kernreturn + 8
1 libsystem_c.dylib 0x366356d8 _pthread_wqthread + 592
2 libsystem_c.dylib 0x36635bbc start_wqthread + 0
Thread 0 crashed with ARM Thread State:
r0: 0x00000000 r1: 0x3ef7c298 r2: 0x00562ab2 r3: 0x00000000
r4: 0x001f8c70 r5: 0x00164f80 r6: 0x2fdfd718 r7: 0x2fdfd68c
r8: 0x2fdfd6e8 r9: 0x001fc0a0 r10: 0x001f8c70 r11: 0x00164f80
ip: 0x3f05e428 sp: 0x2fdfd5f4 lr: 0x3609bedf pc: 0x35fbc900
cpsr: 0x60000030
我对此进行了更深入的研究,除非我错过了一些明显的东西,否则这似乎是苹果的一些错误
我尝试创建一个新的 Master Detail iphone 应用程序并在 MasterViewController(UITableViewController) 中添加一个 UIWebView 属性并初始化它
@interface MasterViewController () {
NSMutableArray *_objects;
}
@property(nonatomic, strong) UIWebView *webView;
@end
@implementation MasterViewController
@synthesize detailViewController = _detailViewController;
@synthesize webView;
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
self.title = NSLocalizedString(@"Master", @"Master");
webView = [[UIWebView alloc] initWithFrame:CGRectMake(0.0, 0.0, 320.0, 50.0)];
}
return self;
}
现在我已将此 webview 设置为 tableview 中该部分的页脚 View
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section {
return webView;
}
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section {
return 50.0;
}
在 didSelectRowAtIndexPath 中我做了以下操作
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self.tableView beginUpdates];
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationTop];
[self.tableView endUpdates];
}
现在,每当我触摸一行时,我都会遇到同样的崩溃,我不知道为什么会这样。
这是一个全新的应用程序,其中包含默认代码。我只添加了 webView 作为 tableview 的页脚。
最佳答案
这很令人费解。你会尝试删除 begin/endUpdates:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[self.tableView reloadSections:[NSIndexSet indexSetWithIndex:indexPath.section] withRowAnimation:UITableViewRowAnimationTop];
}
我看到崩溃发生在 endUpdates
中,所以到那时为止执行的所有其余部分都完美无缺。
您可以尝试的另一件事是通过调用 reloadData
重新加载整个表,而不是仅通过 reloadSections
重新加载部分。这不是最优化的,但由于你的行数很少,所以实际上应该无关紧要(如果它工作得更好)......
旧答案:
您的 TableView 中的对象之一似乎正在被释放,然后再次被访问。这是一个典型的“僵尸”问题。
您可以通过在 Xcode 中启用僵尸检测来了解正在发生的事情的一些线索。
Here you can find out how to enable zombies .
如果您这样做,那么您在控制台日志中收到的错误消息将提供有关哪个对象被过早释放的更多信息。
我了解到您附上了崩溃日志,因为崩溃发生在现场。在这种情况下,您有两个选择:要么在您身边重现问题(并借助僵尸检测修复它);要么或仔细检查您的内存管理以找出 TableView 中显示的对象的任何问题。
关于objective-c - UIWebView 作为 TableView 部分中页脚的 View 。奇怪的崩溃 - 附上崩溃日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11626572/
我正在对 tableView 是否呈现单元格进行单元测试。 我发现 tableView.cellForRow(at:) 返回 nil,而 tableView.dataSource?tableView(
我有 Tableview 用于显示客户下的食品订单。其中包含水平 UIStackview。在 UIStackView UIStackview 中很少有一/两行标签和一个用于显示订单项的UITableV
我有 Viewcontroller,我在其中设置了 ScrollView 。在 scrollview 中,我有一个 tableview,它位于 Container 中,就在容器下方,当我将 table
我想在滚动时让我的第一个单元格始终位于 tableview 的顶部。 任何帮助都是可观的。提前致谢... 最佳答案 这是为 UITableView 创建标题 View 的方法 - (UIView *)
在我的应用程序中,我点击一行,它会在其下方展开另一行。我想生成一种随机颜色,当我单击一行时,行背景会变成该颜色,而它下面的展开行会变成相同的颜色。如何让行生成相同的随机颜色? 我创建了一个函数来生成随
我正在为这个问题苦苦挣扎,所以我需要你的帮助。基本上我已经编写了一个复杂的 TableView Controller (使用 NSFetchedResults 协议(protocol)等)并且已经在我
我正在使用 JavaFx 2.2。我遇到了一个问题,我无法在 TableView 列中放置不同的组件。例如我有两列 1) 回答 2) 答案类型 如果 AnswerType 包含“Multiple Ch
试图弄清楚如何在 javafx 2 中禁用表列的重新排序? 最佳答案 这是解决方案: tblView.getColumns().addListener(new ListChangeListener()
我一直在寻找有关将数据刷新到 tableview 的信息。我试图直接修改模型,但我遇到了一个错误。我修改了模型,但表格没有刷新,只有当我移动一列时,表格才会显示修改后的值。 为了给你展示一个例子(13
给定一个TableView,我需要检测单元格上的双击。 tableView.setOnMouseClicked(new EventHandler() { @Override publi
我成功创建了一个 TableView,其中将特定列分配给了数据模型类。该程序可以将 csv 文件解析为其中并在表中正确显示所有内容。在此阶段,滚动不是问题。 然后我想选择特定行并将它们发送到另一个表。
我尝试了所有方法来用数据填充 TableView。下一个代码在表中插入一个新行,但数据没有出现在表中。我试图为此找到解释,但没有成功。 请帮忙。我不知道怎么了。 在 controller.java 中
我尝试了所有方法来用数据填充 TableView。下一个代码在表中插入一个新行,但数据没有出现在表中。我试图为此找到解释,但没有成功。 请帮忙。我不知道怎么了。 在 controller.java 中
我有一个通过 Tableview 显示玩家的应用程序。用户可以“添加”一个新玩家并输入他的姓名、高度、体重、图片等...保存后将被添加到 Tableview 中。他们还可以点击每个玩家,然后将他们带到
对于大学,我必须编写一个小应用程序,其想法是创建一个小公式集合。这个概念是有一个类别列表,选择类别后您会收到一个公式列表。选择所需的公式后,您将看到公式计算器的 View 。 我正在努力获得第一个UI
如果我只加载一个 TableView ,我的 View 中必须有两个 TableView ,它工作正常。但是当我尝试使用下面的方法加载两个表格 View 时,它给出了以下异常。 未捕获异常“NSRan
我是 JavaFx 的新手,我正在尝试创建一个 TableView ,而 fxml 是使用场景生成器创建的。如果我运行该程序,该表不会获取值。我发现这个问题在某种程度上符合我的要求( javaFX 2
是否可以对 tableView 进行反向排序?我搜索了很多解决方案,但没有任何效果。 效果就像whatsapp聊天。 一个普通的tableView是: ---------- label 1 -----
我有一个有趣的问题。我有两个 TableView ,一个在另一个里面。我有一个结构,我想用它来将数据添加到我的 TableView 中。该结构有 2 个字符串项和另一个具有 3 个字符串项的结构的数组
我正在使用的方法 func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath
我是一名优秀的程序员,十分优秀!