我尝试将UIScrollView
子类化并在其上使用泛型。它有两个那些通用类型的数组。
import UIKit
class SomeView<T: NSObject, U: NSObject>: UIScrollView {
var array1 = [T]()
var array2 = [U]()
override init() {
super.init(frame: CGRectZero)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
我试图像这样实例化这个类:
SomeView <NSObject, NSObject>()
给我以下错误:
*** NSForwarding:警告:'Swift._IndirectArrayBuffer'类的对象0x7f9cd9612660没有实现 methodSignatureForSelector: - 提前故障无法识别的选择器 - [Swift._IndirectArrayBuffer addObject:]
f?!
我尝试了很多东西,但每次我遇到非常不同的错误时,似乎都表明存在一些奇怪的内存问题。这似乎只发生在子类化UIScrollView
时,例如当我尝试UIButton
或UIView
时似乎没有问题......
试试吧!将上述类粘贴到新的XCode项目(iOS)中,并从AppDelegate实例化该类,您将能够重现它。我试过这个: