編輯 - 對不起球員,我不認爲我給了足夠的細節:鑄造一類的子類失敗
在解析的iOS框架,他們是一個叫PFObject(ClassA的)類。該框架還允許您繼承(ClassB)PFObject。並且,如果發生這樣的情況應該發生,它們將是沒有問題。
我的問題是如何可能?我明白一個子類可能包含不會出現在主類中的變量/方法,從而導致將類轉換爲不合理/不安全的子類的過程。
他們有一個協議定義爲PFSubclassing,但我不明白這是怎麼發生這種行爲。
我有在操場下面:
class ClassA: NSObject { }
class ClassB: ClassA { }
let objectA = ClassA()
let objectB = objectA as! ClassB // <- Crashes
問題:
- 爲什麼崩潰發生的?
- 有沒有辦法解決這個問題?
感謝您的回答。 Parse的iOS SDK以某種方式允許這種行爲,但我試圖瞭解他們是如何做到的。他們有一個類PFObject(A類),並允許你從它創建一個任意類(比如說B類)。然後您可以將PFObject的對象投射到任意類!也許涉及方法調配? – Jason
你的意思是說'如果讓castedClass = classB as? PFObject?'? – pbush25