swift中的block
来源:互联网 发布:揭东军埔淘宝村 编辑:程序博客网 时间:2024/06/06 13:11
protocol StopTimer {
func stopTimer();
}
typealias InputClosureType = (String) -> Void
class ViewController: UIViewController,StopTimer {
var button:UIButton? = nil;
var timer:Timer? = nil
typealias FuncTest = (Int)->Int;
var number:NSInteger = 60;
var stop:StopTimer? = nil;
func kj(_ name:String){}
var m:((_ custom:String)->String)?
// print("--=-=-=-=-=-",KM);
var ms:((_ name:String)->Int)?;
// var m :FuncTest?=nil;
// var m = FuncTest;
var testBlock:((_ kl:String)->(Int))?;
// typealias funBlock = (_ number:Int)->Int;
@IBOutlet weak var animateLabel: UILabel!
func names(_ mg:(Int)){
print("block====%@",mg);
};
var callBack = names;
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
button = UIButton(frame: CGRect(x: 20, y: 40, width: 150, height: 200));
button?.backgroundColor=UIColor.blue;
button?.setTitle("60", for: UIControlState.normal)
button?.addTarget(self, action: #selector(buttonClick(sender:)), for: UIControlEvents.touchUpInside)
self.view.addSubview(button!)
stop = self;
// self.kj { (m) -> Int in
//
//
// print("执行完成了")
//
// return 2;
// }
var m = ms;
let names = ["chris","alex","bkljk "];
func sortFunc(numbers:String,numberw:String)->Bool
{
return numbers>numberw;
}
var sortm = names.sorted(by: sortFunc);
print("刷选出来的结果是",sortm);
print("===m",m);
// self.kj { (name) -> Int in
//
//
//
// print("name的值为====>%@\n",name);
//
//
//
//
//
// return 2;
//
// };
// callBack = {(msgk) in Int
//
//
//
//
// return 20;
//
// };
testBlock = { (kkjj:String) -> Int in
print("结果是lklanxm===%@",kkjj)
return 50;
}
let result = testBlock!("新的发现哦");
print("输出结果是",result)
}
func buttonClick(sender:UIButton) {
if timer==nil {
let weak = self;
timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { (t) in
self.number -= 1;
self.button?.setTitle(("\(self.number)"), for: UIControlState.normal);
if self.number == 0
{
self.timer?.invalidate()
self.timer=nil;
// if self.StopTimer != nil{
self.stop?.stopTimer();
// }
// if (.m != nil)
// {
//// self.m = {( "hah") in Void
////
//// return 20;
//// }
// }
}
})
RunLoop.current.add(timer!, forMode: RunLoopMode.commonModes)
timer?.fire()
}
}
func stopTimer()
{
print("停止操作了");
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
func stopTimer();
}
typealias InputClosureType = (String) -> Void
class ViewController: UIViewController,StopTimer {
var button:UIButton? = nil;
var timer:Timer? = nil
typealias FuncTest = (Int)->Int;
var number:NSInteger = 60;
var stop:StopTimer? = nil;
func kj(_ name:String){}
var m:((_ custom:String)->String)?
// print("--=-=-=-=-=-",KM);
var ms:((_ name:String)->Int)?;
// var m :FuncTest?=nil;
// var m = FuncTest;
var testBlock:((_ kl:String)->(Int))?;
// typealias funBlock = (_ number:Int)->Int;
@IBOutlet weak var animateLabel: UILabel!
func names(_ mg:(Int)){
print("block====%@",mg);
};
var callBack = names;
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
button = UIButton(frame: CGRect(x: 20, y: 40, width: 150, height: 200));
button?.backgroundColor=UIColor.blue;
button?.setTitle("60", for: UIControlState.normal)
button?.addTarget(self, action: #selector(buttonClick(sender:)), for: UIControlEvents.touchUpInside)
self.view.addSubview(button!)
stop = self;
// self.kj { (m) -> Int in
//
//
// print("执行完成了")
//
// return 2;
// }
var m = ms;
let names = ["chris","alex","bkljk "];
func sortFunc(numbers:String,numberw:String)->Bool
{
return numbers>numberw;
}
var sortm = names.sorted(by: sortFunc);
print("刷选出来的结果是",sortm);
print("===m",m);
// self.kj { (name) -> Int in
//
//
//
// print("name的值为====>%@\n",name);
//
//
//
//
//
// return 2;
//
// };
// callBack = {(msgk) in Int
//
//
//
//
// return 20;
//
// };
testBlock = { (kkjj:String) -> Int in
print("结果是lklanxm===%@",kkjj)
return 50;
}
let result = testBlock!("新的发现哦");
print("输出结果是",result)
}
func buttonClick(sender:UIButton) {
if timer==nil {
let weak = self;
timer = Timer.scheduledTimer(withTimeInterval: 1, repeats: true, block: { (t) in
self.number -= 1;
self.button?.setTitle(("\(self.number)"), for: UIControlState.normal);
if self.number == 0
{
self.timer?.invalidate()
self.timer=nil;
// if self.StopTimer != nil{
self.stop?.stopTimer();
// }
// if (.m != nil)
// {
//// self.m = {( "hah") in Void
////
//// return 20;
//// }
// }
}
})
RunLoop.current.add(timer!, forMode: RunLoopMode.commonModes)
timer?.fire()
}
}
func stopTimer()
{
print("停止操作了");
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
0 0
- swift中的block回调
- swift中的block
- swift中的block的创建和使用
- swift block
- swift - block
- swift block
- swift闭包的使用 -- 类似于OC中的Block
- swift之block
- swift语言的Block
- Swift Block传值
- ios-block swift-block
- iOS开发之OC与swift开发混编教程,代理的相互调用,block的实现。OC调用Swift中的代理, OC调用Swift中的Block 闭包,swift 3.0
- iOS开发之OC与swift开发混编教程,代理的相互调用,block的实现。OC调用Swift中的代理, OC调用Swift中的Block 闭包,swift 3.0
- Swift 闭包(block)传值
- swift 使用Block-KVO 框架
- swift中闭包block的使用
- 关于OC中的Block,Swift中的闭包,C++11中的lambda表达式等匿名函数详解
- oc中的block,认识block
- 深入浅出SQL:3 DELETE / UPDATE
- 集成学习-学习笔记
- hdu 1142 A Walk Through the Forest
- 深入PHP面向对象、模式与实践——生成对象(3)
- Opencv路径的统一修改以及不同版本路径的转换
- swift中的block
- 1135: 算菜价
- linux定时任务
- java ee学习路线
- 使用wsdl2java开发webservice客户端
- mysql触发器,存储过程,函数
- Spring MVC处理JSON数据(1)
- opencv入门学习之八:非锐化掩蔽(Unsharp Masking)与高提升滤波
- [机房练习赛4.4]setmod