gpt4 book ai didi

ios - 崩溃 [UITableViewCell initWithStyle :reuseIdentifier:]

转载 作者:行者123 更新时间:2023-11-28 08:50:24 25 4
gpt4 key购买 nike

我有 SIGSEGV 的崩溃报告。我认为这真的不明显,因为有:

  1. 无后台 UI 操作。
  2. 没有外部 CALayer 操作。
  3. UITableViewCell 以编程方式初始化,不使用 xib 或 Storyboard。
  4. 没有 KVO 对细胞属性执行。

只发生过一次,所以没有重现的步骤

崩溃日志如下:

0   libobjc.A.dylib                      0x0000000181d6dbd0 objc_msgSend + 16
1 Foundation 0x0000000182fc28e4 -[NSObject(NSKeyValueObserverNotification) willChangeValueForKey:] + 320
2 QuartzCore 0x0000000184ddf374 CA::Layer::set_delegate(objc_object*) + 68
3 UIKit 0x00000001873e2538 -[UIView _createLayerWithFrame:] + 576
4 UIKit 0x00000001873e1ff8 UIViewCommonInitWithFrame + 684
5 UIKit 0x00000001873e1ce8 -[UIView initWithFrame:] + 136
6 UIKit 0x00000001874c0ee8 -[UITableViewCell initWithStyle:reuseIdentifier:] + 108
7 MyApp 0x000000010017d208 MyApp.MessageCell.init (MyApp.MessageCell.Type)(style : __C.UITableViewCellStyle, reuseIdentifier : Swift.String?) -> MyApp.MessageCell (MessageCell.swift:23)
8 MyApp 0x000000010017d340 @objc MyApp.MessageCell.init (MyApp.MessageCell.Type)(style : __C.UITableViewCellStyle, reuseIdentifier : Swift.String?) -> MyApp.MessageCell (MessageCell.swift:0)
9 UIKit 0x000000018752bbe0 -[UITableView _dequeueReusableViewOfType:withIdentifier:] + 524
10 UIKit 0x0000000187567bd4 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 84
11 MyApp 0x000000010016d60c MyApp.ChatDataSource.dequeueMessageCell (MyApp.ChatDataSource)(MyApp.Message, tableView : __ObjC.UITableView, indexPath : __ObjC.NSIndexPath) -> __ObjC.UITableViewCell (ChatDataSource.swift:76)
12 MyApp 0x000000010016cf48 MyApp.ChatDataSource.cellAtIndexPath (MyApp.ChatDataSource)(__ObjC.NSIndexPath!, inTableView : __ObjC.UITableView!) -> __ObjC.UITableViewCell! (ChatDataSource.swift:55)
13 MyApp 0x000000010016d324 @objc MyApp.ChatDataSource.cellAtIndexPath (MyApp.ChatDataSource)(__ObjC.NSIndexPath!, inTableView : __ObjC.UITableView!) -> __ObjC.UITableViewCell! (ChatDataSource.swift:0)
14 MyApp 0x000000010005cb34 -[SFPaginationDataSource tableView:cellForRowAtIndexPath:] (SFPaginationDataSource.m:202)
15 UIKit 0x000000018773131c -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 688
16 UIKit 0x0000000187731484 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 76
17 UIKit 0x00000001877207e8 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2356
18 UIKit 0x0000000187735fb0 -[UITableView _performWithCachedTraitCollection:] + 100
19 UIKit 0x00000001874cb08c -[UITableView layoutSubviews] + 172
20 UIKit 0x00000001873db778 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 652
21 QuartzCore 0x0000000184deab2c -[CALayer layoutSublayers] + 144
22 QuartzCore 0x0000000184de5738 CA::Layer::layout_if_needed(CA::Transaction*) + 288
23 UIKit 0x00000001873f2454 -[UIView(Hierarchy) layoutBelowIfNeeded] + 920
24 TextViewController 0x0000000100ec03f4 0x100ea8000 + 99316
25 MyApp 0x00000001001f5680 MyApp.ChatViewControler.viewWillAppear (MyApp.ChatViewControler)(Swift.Bool) -> () (ChatViewControler.swift:52)
26 MyApp 0x00000001001f59a4 @objc MyApp.ChatViewControler.viewWillAppear (MyApp.ChatViewControler)(Swift.Bool) -> () (ChatViewControler.swift:0)
27 UIKit 0x00000001873f874c -[UIViewController _setViewAppearState:isAnimating:] + 624
28 UIKit 0x00000001873f84c0 -[UIViewController __viewWillAppear:] + 152
29 UIKit 0x0000000187591ce4 -[UINavigationController _startCustomTransition:] + 1048
30 UIKit 0x000000018749e9b8 -[UINavigationController _startDeferredTransitionIfNeeded:] + 684
31 UIKit 0x000000018749e694 -[UINavigationController __viewWillLayoutSubviews] + 56
32 UIKit 0x000000018749e5fc -[UILayoutContainerView layoutSubviews] + 204
33 UIKit 0x00000001873db778 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 652
34 QuartzCore 0x0000000184deab2c -[CALayer layoutSublayers] + 144
35 QuartzCore 0x0000000184de5738 CA::Layer::layout_if_needed(CA::Transaction*) + 288
36 QuartzCore 0x0000000184de55f8 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 28
37 QuartzCore 0x0000000184de4c94 CA::Context::commit_transaction(CA::Transaction*) + 248
38 QuartzCore 0x0000000184de49dc CA::Transaction::commit() + 508
39 UIKit 0x00000001873d1c78 _afterCACommitHandler + 176
40 CoreFoundation 0x00000001826a4588 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 28
41 CoreFoundation 0x00000001826a232c __CFRunLoopDoObservers + 368
42 CoreFoundation 0x00000001826a275c __CFRunLoopRun + 924
43 CoreFoundation 0x00000001825d1680 CFRunLoopRunSpecific + 380
44 GraphicsServices 0x0000000183ae0088 GSEventRunModal + 176
45 UIKit 0x0000000187448d90 UIApplicationMain + 200
46 MyApp 0x0000000100199718 main (AppDelegate.swift:17)
47 ??? 0x00000001821728b8 0x0 + 0

MessageCell.swift

import UIKit

class MessageCell: UITableViewCell, ConfigurableCell {

var messageView = MessageView()

var alignment: MessageLayout.MessageAligmment {
get { return messageView.layout.mode }
set {
messageView.layout.mode = newValue
}
}

override required init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
defaultInit()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
defaultInit()
}

func defaultInit() {
selectionStyle = .None
contentView.addSubview(messageView)
messageView.autoPinEdgesToSuperviewEdges()
}

func configure(item: Message) {
messageView.configure(item)
}
}

最佳答案

“它不是无效的 KVO 观察者的结论是不正确的,因为它发生在对象的初始化过程中。由于历史原因,KVO 使用侧表将对象地址与观察者相关联。这意味着如果原始观察者被释放,那么下一个占用相同地址的对象实际上是新的被观察者。KVO 将表现得好像正在观察新对象,并尝试向可能也被释放的观察者发出更改通知。来自 discussion

关于ios - 崩溃 [UITableViewCell initWithStyle :reuseIdentifier:],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34397995/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com