您的位置:首页 > 移动开发 > Swift

swift中的block的创建和使用

2016-04-10 20:03 513 查看
在OC中叫block,在swift中叫闭包。。

使用一个图片下载的案例来说明下闭包的使用

import UIKit
//定义闭包
typealias SuccessBlock = ( imageDownload :
ImageDownLoad,image: UIImage) ->Void
typealias ErrorBlock = (imageDownload :
ImageDownLoad,error: NSError)->Void

class ImageDownLoad:
NSObject {
// 在类里面声明属性成功和失败案例
var successBlock :
SuccessBlock?
var errorBlock :
ErrorBlock?

var reveiceData = NSMutableData()
let urlStr :String
init(str :String)
{
self.urlStr = str;
super.init()
let url = NSURL.init(string: str);
print(url);
let request = NSURLRequest(URL: url!);
let connect = NSURLConnection.init(request: request, delegate:
self);
connect! .start();

}
// 实现的两个方法
func MySuccessClosure(successMyBlock:SuccessBlock) ->
Void {
successBlock = successMyBlock;
}

func MyErrorClosure(errorMyBlock :ErrorBlock) ->
Void {
errorBlock = errorMyBlock;
}

// 在connection的代理里面传值
func connection(connection:
NSURLConnection, didFailWithError error:
NSError){
errorBlock!(imageDownload:self,error:error);
}
func connection(connection:
NSURLConnection, didReceiveData data:
NSData)
{
reveiceData.appendData(data);

}
func connectionDidFinishLoading(connection:
NSURLConnection)
{
let image = UIImage.init(data: reveiceData);
successBlock!(imageDownload: self,image: image!);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: