//
// ViewController.swift
// 多线程
//
// Created by admin on 16/2/17.
// Copyright © 2016年 jin. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var imageView: UIImageView!
var ticketsNumber = 20
override func viewDidLoad() {
super.viewDidLoad()
}
override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
self.performSelectorInBackground("getImage", withObject: nil)
}
func getImage()
{
// oc子线程里面的runloop默认不开启, 也就意味不会自动创建自动释放池, 子线程里面autorelease的对象 就会没有池子可放。 也就意味后面没办法进行释放。 造成内存泄露
// 所以需要手动创建,好像不是的
print(NSThread.currentThread())
let data = NSData(contentsOfURL: NSURL(string: "http://f.hiphotos.baidu.com/image/pic/item/7aec54e736d12f2eec17b2b54bc2d562843568d0.jpg")!)
// 更新ui要在主线程,所以这里把获取到的图片去主线程赋值
//self.performSelectorOnMainThread(Selector("assignImage:"), withObject: UIImage(data: data!), waitUntilDone: false)
// self.performSelector(Selector("assignImage:"), onThread: NSThread.mainThread(), withObject: UIImage(data: data!), waitUntilDone: false, modes: [NSRunLoopCommonModes])
self.performSelector(Selector("assignImage:"), onThread: NSThread.mainThread(), withObject: UIImage(data: data!), waitUntilDone: false)
}
class Jin {
deinit
{
print("对象销毁啦。。。")
}
}
func assignImage(image:UIImage)
{
print(NSThread.currentThread())
self.imageView.image = image
}
}