无法为类型' NSSet'调用初始化程序。使用类型'(数组:[NSData?])'的参数列表

时间:2015-10-02 10:51:19

标签: swift2

更新到swift 2.0时出现此错误:
无法为类型' NSSet'调用初始化程序。使用类型'(数组:[NSData?])'

的参数列表

我已经进行了搜索,但仍无法修复。

var object:UIImageView = UIImageView(frame: CGRectMake(0, 0, result.size.width, result.size.height))
object.image = UIImage(named: "image_default")
let element = NSEntityDescription.insertNewObjectForEntityForName("XKIMAGEVIEW", inManagedObjectContext: CoreDataUtil.sharedInstance.managedObjectContext!) as! XKIMAGEVIEW
element.image = NSSet(array:[UIImageJPEGRepresentation(object.image!, 1)])

最后一行只有错误
似乎NSData无法包含在数组中

有关如何解决此问题的想法吗?

1 个答案:

答案 0 :(得分:1)

UIImageJPEGRepresentation会返回一个可选项,NSSet不接受选项 只需打开可选项:

NSSet(array:[UIImageJPEGRepresentation(object.image!, 1)!])

或者,如果图像表示可能是nil,则使用可选绑定

if let imageData = UIImageJPEGRepresentation(object.image!, 1) {
  element.image = NSSet(array:[imageData])
}