Swift相当于inputStream

时间:2015-10-11 15:30:43

标签: java swift parse-platform

标题

我正在使用swift 2.0和Parse Backend将我的Android应用程序转换为IOS应用程序,我只想知道相当于此代码:

代码

InputStream rawData = (InputStream) new URL(https_url).getContent();
Bitmap UniqueQRCode = BitmapFactory.decodeStream(rawData);
ByteArrayOutputStream stream = new ByteArrayOutputStream();

// Compress image to lower quality scale 1 - 100
UniqueQRCode.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] image = stream.toByteArray();

1 个答案:

答案 0 :(得分:0)

最好在iOS上进行异步调用。这将导致更具响应性的应用程序。

以下是从网络下载图片并将其显示在UIImageView中的简单示例:

class ViewController: UIViewController
{
    @IBOutlet weak var imageView: UIImageView!

    override func viewDidLoad() {
        super.viewDidLoad()

        if let url = NSURL(string: "https://mozorg.cdn.mozilla.net/media/img/firefox/new/header-firefox-high-res.d121992bf56c.png") {
            let task = NSURLSession.sharedSession().dataTaskWithRequest(NSURLRequest(URL: url)) { (data, response, error) -> Void in
                if error == nil && data != nil { // Needs better error handling based on what your server returns
                    if let image = UIImage(data: data!) {
                        dispatch_async(dispatch_get_main_queue()) {
                            self.imageView.image = image
                        }
                    }
                }
            }
            task.resume()
        }
    }
}

如果您在iOS 9上运行此功能,则需要在应用程序的NSAllowsArbitraryLoads中将YES设置为Info.plist。有很多关于这一点的帖子更详细。