gpt4 book ai didi

ios - -[NSConcreteNotification 计数] : unrecognized selector sent to instance 0x2816dd380

转载 作者:行者123 更新时间:2023-12-01 23:43:53 28 4
gpt4 key购买 nike

我花了一个小时来解决这个 iOS 崩溃问题,并发布了解决方案以防万一。在崩溃中 NSConcreteNotification 之后,您可能有一个不同于 count 的值。

我在访问 array.count 时崩溃了,这就是为什么它在我的案例中是重要的:

    @objc fileprivate func loadParts(constraints: [NSLayoutConstraint]? = nil) {
assert(Thread.current.isMainThread)
var constraints = constraints ?? [NSLayoutConstraint]()
...
let cCount = constraints.count

我这辈子都看不出它会如何在 constraints.count 上崩溃,因为数组保证存在。

最佳答案

我将此功能连接到这样的通知:

NotificationCenter.default.addObserver(self, selector: #selector(self.loadParts), name: UIDevice.batteryStateDidChangeNotification, object: nil)

如果您查看 addObserver 的文档,它说该函数必须只有一个参数它是一个通知。发生的事情是我的函数是通过通知调用的,但我的代码期望它是一个数组。

修复方法是创建一个新函数,它只调用我想要的函数 (loadParts),并让通知命中它:

    NotificationCenter.default.addObserver(self, selector: #selector(self.loadPartsNotification(_:)), name: UIDevice.batteryStateDidChangeNotification, object: nil)

...

@objc fileprivate func loadPartsNotification(_ notification: Notification) {
self.loadParts()
}

fileprivate func loadParts(constraints: [NSLayoutConstraint]? = nil) {
...

关于ios - -[NSConcreteNotification 计数] : unrecognized selector sent to instance 0x2816dd380,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64576726/

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