Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/121.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用Swift将新图像指定给UIImageView_Ios_Uiimageview_Swift_Nsurlsession - Fatal编程技术网

Ios 使用Swift将新图像指定给UIImageView

Ios 使用Swift将新图像指定给UIImageView,ios,uiimageview,swift,nsurlsession,Ios,Uiimageview,Swift,Nsurlsession,我使用的是Xcode 6 Beta 4,我试图检索一个远程图像并将其分配给UIImageView。我正在使用NSURLSession dataTask使其异步。这是我的密码: func dataTask(imageUrl: String, targetImage:UIImageView) { let nsURL = NSURL(string: imageUrl) let task = NSURLSession.sharedSession().dataTaskWithURL(n

我使用的是Xcode 6 Beta 4,我试图检索一个远程图像并将其分配给UIImageView。我正在使用NSURLSession dataTask使其异步。这是我的密码:

func dataTask(imageUrl: String, targetImage:UIImageView) {

    let nsURL = NSURL(string: imageUrl)

    let task = NSURLSession.sharedSession().dataTaskWithURL(nsURL) {
        (data, response, error) in
        if !error {
            NSLog("No Error!")                
            var image:UIImage = UIImage(data: data)
            targetImage.image = image
        }
        else {
            NSLog("Error!")
        }
    }

    task.resume()
}
这就是我打电话的方式:

        self.dataTask("http://bicicletaspony.com/img/spn/TeamA.png", targetImage: image)
这就是我得到的错误:(

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“不能从后台线程执行对布局引擎的修改。”


这是一个非常简单的图像分配。为什么会这样崩溃?!任何帮助都将不胜感激!

在后台线程上调用
dataTaskWithURL
结尾运行的闭包。UIKit(与大多数其他工具包一样)只能从主线程调用。您需要使用以下内容在主线程上设置映像:

if !error {
    NSLog("No Error!")             
    var image:UIImage = UIImage(data: data)
    dispatch_async(dispatch_get_main_queue(), {
        targetImage.image = image
    })
}

谢谢你这么快回复!你的代码也成功了!