如何将实体放入数组Swift
问题描述:
我有一对多的关系,其中List
可以有很多Items
。 然后我有一个List
变量,我需要列表实体。那里没有问题。如何将实体放入数组Swift
该列表是一个tableview
,用户可以添加行,因此当它们添加一行时,它会将其作为Item
关系添加到List
。
然后我可以使用List.valueForKey("item")
来获取物品。但是返回类型是AnyObject。有没有比将它转换为NSSet更好的方法,然后必须通过并获取值并将它们放入数组中? 换句话说,我如何获得所有Item实体的值并将它们放入数组中?
Pd:关系是有序的。
答
你不能成功地将东西投射到它不是的东西上。投射仅仅是向编译器揭示真相的一种方式。这意味着你比编译器知道的更多。但是你必须告诉编译器真相!如果你对编译器说谎,你会在运行时崩溃。
因此,如果转换为数组会导致运行时崩溃,那是因为这是而不是数组。你只能铸造到它真的是。
+0
它可能会帮助您阅读关于在我的书中进行投射的讨论:http://www.apeth.com/swiftBook/ch04.html#_casting – matt
“我怎样才能将它返回给数组”通过将其转换为数组。你已经回答了你自己的问题,不是吗?如果不是,你能否进一步解释问题是什么? – matt
可能像这样'let items = anObject as! [Item]'? – beryllium
@matt List.valueForKey(“item”)返回AnyObject,它不允许我将它转换为数组。对不起,我的措辞,我不明白为什么它返回AnyObject,如果如果返回多个对象。是否因为我不应该使用valueForKey? – Marcel