UIImage(data: NSData) error: Missing argument for parameter 'inBundle' in call
UIImage(data: NSData) error: Missing argument for parameter 'inBundle' in call
我正在为看起来像“http://graph.facebook.com/(id)/picture?type=large”的 Facebook 个人资料图片存储 NSURL
,其中 id 是用户的 ID。
我想在 UIImage
中显示来自 url 的图像
我正在尝试这样做:
var data = NSData(contentsOfURL: profilePictureURL)
cell.backgroundImage = UIImage(data: data)
但是 XCode 在第二行抛出错误:
"Missing argument for parameter 'inBundle' in call" 但显然这不是此调用中的参数。我什至尝试像 UIImage(data: data, inBundle: nil) 一样在之前和之后添加一次并反转但它说 "extra argument inBundle"
请帮忙!
**** 编辑 ****
发现问题:
cell.backgroundImage = UIImage(data: data)
应该是
cell.backgroundImage.image = UIImage(data: data)
如您所见,您想要设置 cell.backgroundImage
的 image
属性。此外,您还需要打开可选的包装。
您可以进行强制展开:
let data = NSData(contentsOfURL: profilePictureURL)
cell.backgroundImage.image = UIImage(data: data!)
或者,更安全一点,可选绑定:
if let data = NSData(contentsOfURL: profilePictureURL) {
cell.backgroundImage.image = UIImage(data: data)
}
而且,如果你想特别谨慎,异步执行此操作,它看起来像:
cell.backgroundImage.image = nil // initialize it to nil before we go to get image asynchronously
NSURLSession.sharedSession().dataTaskWithURL(profilePictureURL) { data, response, error in
if data == nil {
println("dataTaskWithURL error: \(error)")
} else {
if let image = UIImage(data: data) {
dispatch_async(dispatch_get_main_queue()) {
cell.backgroundImage.image = image
}
}
}
}
我正在为看起来像“http://graph.facebook.com/(id)/picture?type=large”的 Facebook 个人资料图片存储 NSURL
,其中 id 是用户的 ID。
我想在 UIImage
我正在尝试这样做:
var data = NSData(contentsOfURL: profilePictureURL)
cell.backgroundImage = UIImage(data: data)
但是 XCode 在第二行抛出错误:
"Missing argument for parameter 'inBundle' in call" 但显然这不是此调用中的参数。我什至尝试像 UIImage(data: data, inBundle: nil) 一样在之前和之后添加一次并反转但它说 "extra argument inBundle"
请帮忙!
**** 编辑 ****
发现问题:
cell.backgroundImage = UIImage(data: data)
应该是
cell.backgroundImage.image = UIImage(data: data)
如您所见,您想要设置 cell.backgroundImage
的 image
属性。此外,您还需要打开可选的包装。
您可以进行强制展开:
let data = NSData(contentsOfURL: profilePictureURL)
cell.backgroundImage.image = UIImage(data: data!)
或者,更安全一点,可选绑定:
if let data = NSData(contentsOfURL: profilePictureURL) {
cell.backgroundImage.image = UIImage(data: data)
}
而且,如果你想特别谨慎,异步执行此操作,它看起来像:
cell.backgroundImage.image = nil // initialize it to nil before we go to get image asynchronously
NSURLSession.sharedSession().dataTaskWithURL(profilePictureURL) { data, response, error in
if data == nil {
println("dataTaskWithURL error: \(error)")
} else {
if let image = UIImage(data: data) {
dispatch_async(dispatch_get_main_queue()) {
cell.backgroundImage.image = image
}
}
}
}