相关疑难解决方法(0)

Swift异步加载图像

我正在处理来自url异步的show image.我试图为下载图像创建一个新线程,然后刷新main thread.

func asyncLoadImg(product:Product,imageView:UIImageView){
    let downloadQueue = dispatch_queue_create("com.myApp.processdownload", nil)
    dispatch_async(downloadQueue){
        let data = NSData(contentsOfURL: NSURL(string: product.productImage)!)
        var image:UIImage?
        if data != nil{
            image = UIImage(data: data!)
        }
        dispatch_async(dispatch_get_main_queue()){
            imageView.image = image
        }

    }
}
Run Code Online (Sandbox Code Playgroud)

当我尝试调试时,当涉及到dispatch_async(downloadQueue)时,它会跳出func.有什么建议吗?谢谢

asynchronous swift

29
推荐指数
3
解决办法
6万
查看次数

如何从NSURLSession.sharedSession().dataTaskWithRequest获取数据

class PostFOrData {
    let url = NSURL( string: "http://210.61.209.194:8088/SmarttvWebServiceTopmsoApi/GetReadlist")
    var picUrl = NSURL(string : "http://210.61.209.194:8088/SmarttvMedia/img/epi00001.png")
    var responseString : NSString = ""

    func forData() -> NSString {

        let request = NSMutableURLRequest( URL: url!)
        request.HTTPMethod = "POST"
        var s : NSString = ""

        let postString : String = "uid=59"
        request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)

        let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
            data, response, error in

            if error != nil {
                println("error=\(error)")
                return
            } else {
                println("response = \(response!)")
                self.responseString = NSString(data: data, encoding: NSUTF8StringEncoding)!
                println("responseString = …
Run Code Online (Sandbox Code Playgroud)

nsurlsession swift

26
推荐指数
1
解决办法
2万
查看次数

从完成处理程序中获取NSURLSession DownloadTaskWithRequest中的数据

所以我很难理解某些东西.这是我对NSURSession的理解:

  • 一般来说,我有2个选项(据我所知)DataTask(ex dataTaskWithRequest)DownloadTask(ex DownloadTaskWithRequest) - 使用他们的委托方法,使用完成处理程序,不能两者兼顾.我已经设法使用dataTaskWithRequest接收DATA,如下所示:

    let request = NSMutableURLRequest(URL: dataSourceURL!)
    request.HTTPMethod = "POST"
    
    let postString = "lastid=\(id)"
    request.HTTPBody = postString.dataUsingEncoding(NSUTF8StringEncoding)
    let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
        data, response, error in
    
        if error != nil {
            println("error=\(error)")
            return
        }
        if data != nil {
            println("works")
            //Handle data
    
    
        }
        //println("response = \(response)")
    
    
    }
    task.resume()      
    
    Run Code Online (Sandbox Code Playgroud)

它完美地运作.问题是我需要将数据下载到磁盘而不是下载到内存(我正在下载图像).所以我尝试使用DownloadTaskWithRequest +他的完成处理程序,我注意到他所采用的参数是相同的,期望第一个是NSURL,而DataTaskWithRequestNSData,因此它使事情变得非常简单.恩.

 let task2 = NSURLSession.sharedSession().downloadTaskWithRequest(request, completionHandler: { (location : NSURL!, response : …
Run Code Online (Sandbox Code Playgroud)

nsdata ios nsurlsession nsurlsessiondownloadtask swift

9
推荐指数
1
解决办法
8473
查看次数

我应该在Swift iOS应用程序中使用UIImage或CGImage吗?

我能找到的所有代码都围绕将图像直接加载到可视控件中.

但是,我有自己的缓存系统(从另一种语言转换项目),所以我尽可能高效地想要以下内容:

  • 加载jpg/png图像 - 可能是一个位图/ cgimage.(他可以来自文件系统,也可以来自在线下载的图像)
  • 可能将图像保存为压缩/调整大小的png/jpg文件
  • 为视觉控制提供图像参考

我是swift和ios平台的新手,但据我所知,cgimage尽可能接近?但是,当使用cgimage时,似乎没有办法从文件系统加载图像...但是我发现人们正在讨论UIImage的方法,所以我现在怀疑我最初的印象ha cgimage是最好的匹配我的需要.

cgimage ios

8
推荐指数
1
解决办法
3637
查看次数

从 URL 循环下载图像以用于集合视图

我正在尝试创建图像的集合视图。我已经试过这些解决方案,下载图像:
一个
2
3

4

var tempObject = json["photos"]
                for var i = 0; i < tempObject.count; i++
                {
                    var tempImage = UIImage()

                    dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

                        tempImage =  UIImage(data: NSData(contentsOfURL: NSURL(string:"https://developer.apple.com/swift/images/swift-og.png")!)!)!
                    })

                    swiftImages.insert(tempImage, atIndex: i)
                }

                dispatch_async(dispatch_get_main_queue()) {

                    self.collectionView?.reloadData()
                }
Run Code Online (Sandbox Code Playgroud)

但我无法让它显示图像。我是 swift 网络的新手。

func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
        let cell = collectionView.dequeueReusableCellWithReuseIdentifier("Cell", forIndexPath: indexPath) as! ImageCollectionViewCell
        cell.imageView.image = swiftImages[indexPath.row]
        return cell
    }
Run Code Online (Sandbox Code Playgroud)

url networking image ios swift

5
推荐指数
1
解决办法
2667
查看次数

如果在完成之前退出页面,如何取消 URLSession.shared.dataTask?

按照/sf/answers/1939869921/的建议,我可以执行异步下载,如下所示,并在viewDidLoad.

    func loadItems(tuple : (name : String, imageURL : URL)) {
        print("Download Started")
        URLSession.shared.dataTask(with: tuple.imageURL, completionHandler :
        { data, response, error in
            guard let data = data, error == nil else { return }
            print(response?.suggestedFilename ?? tuple.imageURL.lastPathComponent)
            print("Download Finished")
            DispatchQueue.main.async() { [weak self] in
                self?.displayFlag(data: data, title: tuple.name)
            }
        }).resume()
    }
Run Code Online (Sandbox Code Playgroud)

这一切都运作良好。我的问题是,如果下载缓慢,并且我退出页面,如何以及在哪里(viewDidUnload?看起来已经不推荐使用)可以取消获取(图像下载)任务?

ios swift urlsession

5
推荐指数
1
解决办法
3261
查看次数

快速从本地获取图像

我真的很需要帮助

我将图像保存到 DocumentDirectory 如何获取此图像并放入 UIImageView?

照片网址:

file:///Users/zoop/Library/Developer/CoreSimulator/Devices/3E9FA5C0-3III-41D3-A6D7-A25FF3424351/data/Containers/Data/Application/7C4D9316-5EB7-4A70-82DC-E76C654sEA20profile

photo uiimageview swift

3
推荐指数
1
解决办法
2万
查看次数

如何快速显示来自URL的图像

我正在进行一个异步调用,该响应的JSON响应同时包含要显示在UIImageView中的图像的文本和URL。现在,在标签中显示文本不是问题,但是加载图像给我带来了麻烦。在下面共享了我的代码。

//Declared variables to hold response
    var offerContent: String?
    var offerImage: URL?
    var offerTitle: String?
    var suggestionLabel:String?
    var suggestionScreen: String?



//create a task to send reques
            let task = URLSession.shared.dataTask(with: request as URLRequest){
                data, response, error in
                if error != nil {
                    print("error is:: \(error!.localizedDescription)")
                    return;
                }
                //parsing the response
                do {
                    // converting response to NSDictionary
                    let myJSON = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary

                    DispatchQueue.main.async {
                        if let parseJSON = myJSON{
                            var responseCode: Int!
                            var responseMessage: NSArray! …
Run Code Online (Sandbox Code Playgroud)

ios swift

2
推荐指数
1
解决办法
5053
查看次数

Swift:imageWithData不可用

我通过将图像数据传递给它来在swift中创建一个UIImage对象.类似于它在objective-c中的完成方式

UIImage imageWithData
Run Code Online (Sandbox Code Playgroud)

但是,我看到错误说:imageWithData不适用于swift.

对于Swift的imageWithData有什么替代方案?

xcode uiimage ios swift

1
推荐指数
1
解决办法
2959
查看次数

如何使用URL Swift 3下载图像?

我是一个新手开发者,我正在尝试从URL下载并显示图像并将其显示在UIImage视图中.我尝试了多种方法,使用以前问过的问题和网页信息,但它不断出现多个错误.

ios swift swift3

1
推荐指数
1
解决办法
1万
查看次数

如何从 URL 加载图像并将其显示在 tableView 单元格中 (Swift 3)

我有图像 URL,我想在放置在 tableView 单元格中的 UIImageView 中显示该图像。我创建了一个自定义单元格并为 imageView 添加了一个出口。由于我正在加载新闻,因此 URL 会相应更改。注意:我正在使用 Alamofire 来处理我的 HTTP 请求。

struct News {
    let title: String
    let text: String
    let link: String
    let imgUrl: String

    init(dictionary: [String:String]) {
        self.title = dictionary["title"] ?? ""
        self.text = dictionary["text"] ?? ""
        self.link = dictionary["link"] ?? ""
        self.imgUrl = dictionary["imgUrl"] ?? ""
    }
}
Run Code Online (Sandbox Code Playgroud)

并将信息加载到我的自定义单元格

override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) as? newsCellTableViewCell
    let news = newsData[indexPath.row]
    cell?.headline.text …
Run Code Online (Sandbox Code Playgroud)

ios swift alamofire

1
推荐指数
1
解决办法
1万
查看次数

通过AlamofireImage下载UIImage?

我有一个URL,并希望通过返回功能下载图像,但我不能让它正确合作,这是我的功能:

func getTabImage(url: URL) -> UIImage {
    Alamofire.request(url)
        .responseImage { response in
            if let image = response.result.value {
                return image
            } else {
                print("Failed to get image")
            }
    }
}
Run Code Online (Sandbox Code Playgroud)

我传入了URL,并希望从alamofire响应中返回一个UIImage.

但我明白了

void函数中出现意外的非void返回值

对于退货声明.

我怎样才能正确实现这一目标?

ios swift alamofire alamofireimage

0
推荐指数
1
解决办法
3270
查看次数