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/