我想將對象存儲在數組中,其中對象很弱並且符合協議。但是,當我嘗試循環它,我得到一個編譯錯誤:迭代弱引用數組,其中的對象符合Swift中的協議
public class Weak<T: AnyObject> {
public weak var value : T?
public init (value: T) {
self.value = value
}
}
public protocol ClassWithReloadFRC: class {
func reloadFRC()
}
public var objectWithReloadFRC = [Weak<ClassWithReloadFRC>]()
for owrfrc in objectWithReloadFRC {
//If I comment this line here, it will able to compile.
//if not I get error see below
owrfrc.value!.reloadFRC()
}
任何想法到底是什麼?
Bitcast requires types of same width %.asSubstituted = bitcast i64 %35 to i128, !dbg !5442 LLVM ERROR: Broken function found, compilation aborted!
我應該補充說,一般來說,我有一個可怕的時間與數組<協議類型>,所以我希望數組<通用<協議類型>更糟糕。 :) – matt
「有內置的可可方法來做到這一點」 - 他們只在Objective-C中工作。如果你嘗試使用'NSHashTable'或類似的東西,你會得到與'Weak'包裝器一樣的作者的錯誤。 – kelin