字典的值没有变化

时间:2016-06-06 07:56:59

标签: swift core-graphics

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

我得到了错误:

  

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

任何人都能解释一下吗?

1 个答案:

答案 0 :(得分:0)

试试这个

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是struct,因此无法将其强制转换为AnyObject类型。使用NSValue类和CGSize:初始化程序包装CGSize。您可以使用CGSizeValue()方法将NSValue个实例用于以后解包CGSize