swift语言的学习笔记八(保留了许多OC的实现)

swift语言的学习笔记八(保留了许多OC的实现),第1张

概述尽管swift作为一门新语言,但还保留了许多OC的机制,使得swift和OC更好的融合在一起。如果没有OC基础的先GOOGLE一下。 如:KVO,DELEGATE,NOTIFICATION。 详见DEMO。 [cpp]  view plain copy import Foundation      @objc   // 需要打开objc标识,否则@optional编译出错      protoco

尽管swift作为一门新语言,但还保留了许多OC的机制,使得swift和OC更好的融合在一起。如果没有OC基础的先GOOGLE一下。

如:KVO,DELEGATE,NOTIFICATION。

详见DEMO。

[cpp] view plain copy importFoundation @objc//需要打开objc标识,否则@optional编译出错 protocolkvoDemoDelegate{ funcwillDoSomething() @optionalfuncdIDDoSomething()//可选实现, } letntfname="test_notification" classkvoDemo:NSObject//不写NSObject默认就是从NSObject来的 { vardelegate:kvoDemoDelegate! varpresult:Double=0.0 varresult:Double{ get{ returnpresult; } set{ self.presult=newValue init() funcdoSomething() { ifletyet=self.delegate? delegate!.willDoSomething() for_in1..5 println("i'mdoingNow,don'ttouchme,please.") delegate!.dIDDoSomething!() funcnotificationPost() letntf=NSNotificationCenter.defaultCenter() ntf.postNotificationname(ntfname,object:nil,userInfo:nil) deinit } 测试:

classVIEwController:UIVIEwController,kvoDemoDelegate{ //KVO overrIDefuncobserveValueForKeyPath(keyPath:String?,ofObject:AnyObject?,change:NSDictionary?,context:CMutableVoIDPointer) ifkeyPath=="result" varnewvalue:AnyObject?=change?.objectForKey("new"); println("thenewvalueis\(newvalue)") //delegate println("iwilldoit.") funcdIDDoSomething() println("ihaddoit.") //notification funconRecviceNotification(notification:NSNotification) println("Recevicenotification\(notification)") overrIDefuncvIEwDIDLoad(){ super.vIEwDIDLoad() //DoanyadditionalsetupafterloadingthevIEw,typicallyfromanib. varkvo=kvoDemo() kvo.addobserver(self,forKeyPath:"result",options:NSkeyvalueObservingOptions.New|NSkeyvalueObservingOptions.old,context:nil) kvo.result=280.0 kvo.removeObserver(self,108); List-style:decimal-leading-zero outsIDe; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important"> kvo.delegate=self kvo.doSomething() letntf=NSNotificationCenter.defaultCenter() ntf.addobserver(self,selector:"onRecviceNotification:",name:ntfname,object:nil) kvo.notificationPost() ntf.removeObserver(self) }
结果:

thenewvalueis280 iwilldoit. i'mdoingNow,don'ttouchme,please. i'mdoingNow,please. ihaddoit. RecevicenotificationNSConcreteNotification0x10be60930{name=test_notification} 总结

以上是内存溢出为你收集整理的swift语言的学习笔记八(保留了许多OC的实现)全部内容,希望文章能够帮你解决swift语言的学习笔记八(保留了许多OC的实现)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1088512.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存