道歉的混亂和可能不準確的標題。如何將一對多關係對象分配給變量?
無論如何,我有兩個CoreData實體。列表和評論。列表可以有多個註釋,所以實體模型反映了這一點。
extension Listing {
@NSManaged var listingTitle: String?
@NSManaged var comments: NSSet?
}
extension Comment {
@NSManaged var comment: String?
@NSManaged var commentId: String?
@NSManaged var rating: Int32
@NSManaged var username: String?
@NSManaged var listing: Listing?
}
在應用中的某些時候,我想填充與評論一個UITableView,但我有一點很難做到這樣。
var listing: Listing?
override func viewDidLoad() {
super.viewDidLoad()
//I assumed I could do this
var comments: [Comment] = [Comment]()
comments = listings?.comments // This throws an error saying NSSET cant be assigned to type [Comment]
任何人都可以指導我以正確的方式完成我想要做的事情嗎?我可以看到這個問題與這樣一個事實有關,即在Listing實體中,這些委託被定義爲一個未定義類型的NSSet,所以我可能不能將該NSSet直接分配給一個Comment數組。
謝謝!
嗯,我認爲你的意思是! [評論])?? [] 在這種情況下,我得到「從NSSet轉換到不相關的類型[連接]始終失敗」警告。 編輯:啊,在那裏添加「allObjects」至少刪除警告。一旦我證實它確實可行,我會接受答案:)謝謝! – ardevd
如果您在其他地方添加另一行:'let test = listing!.comments.allObjects as! [評論]'(用於調試目的)。這會拋出一個錯誤? – Eendje