2016-09-14 61 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