2016-09-14 59 views
-1

我有一對多的關係,其中List可以有很多Items。 然後我有一個List變量,我需要列表實體。那裏沒有問題。如何將實體放入數組Swift

該列表是一個tableview,用戶可以添加行,因此當它們添加一行時,它會將其作爲Item關係添加到List

然後我可以使用List.valueForKey("item")來獲取物品。但是返回類型是AnyObject。有沒有比將它轉換爲NSSet更好的方法,然後必須通過並獲取值並將它們放入數組中? 換句話說,我如何獲得所有Item實體的值並將它們放入數組中?

Pd:關係是有序的。

+1

「我怎樣才能將它返回給數組」通過將其轉換爲數組。你已經回答了你自己的問題,不是嗎?如果不是,你能否進一步解釋問題是什麼? – matt

+0

可能像這樣'let items = anObject as! [Item]'? – beryllium

+0

@matt List.valueForKey(「item」)返回AnyObject,它不允許我將它轉換爲數組。對不起,我的措辭,我不明白爲什麼它返回AnyObject,如果如果返回多個對象。是否因爲我不應該使用valueForKey? – Marcel

回答

2

你不能成功地將東西投射到它不是的東西上。投射僅僅是向編譯器揭示真相的一種方式。這意味着你比編譯器知道的更多。但是你必須告訴編譯器真相!如果你對編譯器說謊,你會在運行時崩潰。

因此,如果轉換爲數組會導致運行時崩潰,那是因爲這是而不是數組。你只能鑄造到它真的

+0

它可能會幫助您閱讀關於在我的書中進行投射的討論:http://www.apeth.com/swiftBook/ch04.html#_casting – matt