ios - 如何在 Swift 中使用 NSNotification -> userInfo 发送对象数组

标签 ios swift casting nsnotificationcenter userinfo

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 
    }

我希望能够使用 NSNotification 中的 userInfo 来转换它或找到任何其他方式发送它,提前致谢

最佳答案

我想知道餐食的类型。

如果 Meal 继承 AnyObject,您可以轻松地进行转换。

class Meal: AnyObject {
    // something
}

var ordered = [Meal(), Meal()]

var anyOrder =  NSMutableArray()
for meal in ordered {
    anyOrder.addObject(meal as AnyObject)
}

如果不是这样,Meal 是否可以强制转换 AnyObject 取决于继承者。 考虑到崩溃,你未能施放它。所以会发生运行时错误。

关于ios - 如何在 Swift 中使用 NSNotification -> userInfo 发送对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32354507/

相关文章:

objective-c - AVPlayerLayer 获取图像到 UIImageView 缓冲区

php - 从 iPhone 发布图像时出现奇怪问题

swift - 无法将字符串保存到 CoreData 中

java - 方法泛型返回java类

c# - 如何使用 lambda 表达式将 IQueryable<Anonymous Type> 转换/转换为 IQueryable<Strongly Typed Object>

ios - 了解 "For In"循环代码

iOS UITextView 无序/有序列表,如 Notes App

ios - 无法弄清楚 Firebase 数据库结构

IOS Mapkit or Core Location解决旅行商问题

没有强制转换的 TypeScript