如何在 Swift 中使用 NSNotification -> userInfo 发送对象数组
Posted
技术标签:
【中文标题】如何在 Swift 中使用 NSNotification -> userInfo 发送对象数组【英文标题】:how to send array of objects using NSNotification -> userInfo in Swift 【发布时间】:2015-09-02 13:26:21 【问题描述】:userInfo
只发送 anyObject
类型的数据,所以我需要转换我的 Meals 数组
到anyObject
没有崩溃然后将其重铸为[Meal]
,不幸的是它在这里崩溃了......
var anyOrder = NSMutableArray()
for meal in ordered // ordered is array of meals [Meal] ...
anyOrder.addObject(meal as! AnyObject) //crashes here
我希望能够使用 userInfo
在NSNotification
中投射或找到任何其他方式发送它,提前致谢
【问题讨论】:
为什么需要将 Meal 转为 AnyObject ?没有那个箱子你就不能送那个饭菜吗? Meal 是一个结构体吗? userInfo 只接受 AnyObject 变量 NSMutableArrays 只能保存对象。结构不是对象。 【参考方案1】:我想知道餐食的种类。
如果 Meal 继承 AnyObject,您可以轻松地进行转换。
class Meal: AnyObject
// something
var ordered = [Meal(), Meal()]
var anyOrder = NSMutableArray()
for meal in ordered
anyOrder.addObject(meal as AnyObject)
如果不是这样,Meal 是否可以转换 AnyObject 取决于继承者。 考虑到崩溃,你没有施放它。所以会发生运行时错误。
【讨论】:
以上是关于如何在 Swift 中使用 NSNotification -> userInfo 发送对象数组的主要内容,如果未能解决你的问题,请参考以下文章
如何在 swift 3.0 中编写此代码,特别是如何在 swift3 中使用宏?
如何在 kotlin native 中使用 swift 库?