相关疑难解决方法(0)

在Swift上从URL加载/下载图像

我想从我的应用程序中的URL加载一个图像,所以我首先尝试使用Objective-C然后使用Swift,我有一个编译错误:

'imageWithData'不可用:使用对象构造'UIImage(data :)'

我的功能:

@IBOutlet var imageView : UIImageView

override func viewDidLoad() {
    super.viewDidLoad()

    var url:NSURL = NSURL.URLWithString("http://myURL/ios8.png")
    var data:NSData = NSData.dataWithContentsOfURL(url, options: nil, error: nil)

    imageView.image = UIImage.imageWithData(data)// Error here
}
Run Code Online (Sandbox Code Playgroud)

在Objective-C中:

- (void)viewDidLoad {
    [super viewDidLoad];

    NSURL *url = [NSURL URLWithString:(@"http://myURL/ios8.png")];
    NSData *data = [NSData dataWithContentsOfURL:url];

    _imageView.image = [UIImage imageWithData: data];
    _labelURL.text = @"http://www.quentinroussat.fr/assets/img/iOS%20icon's%20Style/ios8.png";
 }
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下为什么imageWithData:它不适用于Swift,我该如何解决这个问题.

nsurl uiimage ios swift

387
推荐指数
19
解决办法
45万
查看次数

如何取消URL会话请求

我使用转换图像到base64上传多个图像到服务器,并在API中发送图像作为参数.但是当我们一次又一次地调用api然后如何停止api调用按钮点击时.我使用下面的代码来调用API.

提前致谢

let urlPath: String = "URL"
        let url: URL = URL(string: urlPath)!
        var request1 = URLRequest(url: url)
        request1.httpMethod = "POST"
        let stringPost="imgSrc=\(image)"
        let data = stringPost.data(using: String.Encoding.utf8)
        // print("data\(data)")
        request1.httpBody=data

        request1.timeoutInterval = 60
        let _:OperationQueue = OperationQueue()
        let task = session.dataTask(with: request1){data, response, err in
            do
            {
                if data != nil
                {
                    print("data\(String(describing: data))")
                    if let jsonResult = try JSONSerialization.jsonObject(with: data!, options: []) as? NSDictionary
                    {
                        DispatchQueue.main.async
                            {
                        print("json\(jsonResult)")


                    }
                }

            }
            catch let error as NSError
            {
                DispatchQueue.main.async …
Run Code Online (Sandbox Code Playgroud)

ios nsurlsession swift

4
推荐指数
2
解决办法
8556
查看次数

URLSession.shared.dataTask vs dataTaskPublisher,什么时候使用哪个?

我最近遇到了两个数据获取(下载)API,它们对我执行看似相同的事情。我不知道什么时候应该使用一个而不是另一个。

我可以用 URLSession.shared.dataTask

    var tasks: [URLSessionDataTask] = []

    func loadItems(tuple : (name : String, imageURL : URL)) {
        let task = URLSession.shared.dataTask(with: tuple.imageURL, completionHandler :
        { data, response, error in
            guard let data = data, error == nil else { return }
            DispatchQueue.main.async() { [weak self] in
                self?.displayFlag(data: data, title: tuple.name)
            }
        })
        tasks.append(task)
        task.resume()
    }

    deinit {
        tasks.forEach {
            $0.cancel()
        }
    }
Run Code Online (Sandbox Code Playgroud)

或者我可以使用 URLSession.shared.dataTaskPublisher

    var cancellables: [AnyCancellable] = []

    func loadItems(tuple : (name : String, imageURL : URL)) { …
Run Code Online (Sandbox Code Playgroud)

ios swift urlsession

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

标签 统计

ios ×3

swift ×3

nsurl ×1

nsurlsession ×1

uiimage ×1

urlsession ×1