var frameSizeInfo = [String:CGSize]()
frameSizeInfo["productSize"] = logs.productSize as CGSize
frameSizeInfo["pictureWithMatSize"] = logs.pictureWithMatSize
NSNotificationCenter.defaultCenter().postNotificationName("FrameSizeThings", object: frameSizeInfo)


我有类似的错误:


  无法将[string:CGSize]类型的值转换为预期参数
  输入AnyObject?


谁能解释一下?

最佳答案

尝试这个

var frameSizeInfo = [String: NSValue]()
frameSizeInfo["productSize"] = NSValue(CGSize: logs.productSize as CGSize)
frameSizeInfo["pictureWithMatSize"] = NSValue(CGSize: logs.pictureWithMatSize)
NSNotificationCenter.defaultCenter().postNotificationName("FrameSizeThings", object: nil, userInfo: frameSizeInfo)


您可以使用object参数作为发布通知的对象,userInfo参数-作为[NSObject : AnyObject]?自定义参数字典

由于CGSize是结构,因此不能将其转换为AnyObject类型。将NSValue类与CGSize:初始化程序一起使用以包装CGSize。您可以对CGSizeValue()实例使用NSValue方法,以便稍后对CGSize进行包装。

关于swift - 字典的值没有改变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37652231/

10-12 06:21