码迷,mamicode.com
首页 > 编程语言 > 详细

Swift使用注意

时间:2016-12-08 02:53:35      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:点击   hup   pre   方法   计算   ret   protocol   点击事件   nbsp   

一、私有

private修饰的属性、方法、成员变量只能在本类中使用(完全私有)

fileprivate修饰的可以在extension中使用

 

二、取类型

取一个类的类型,oc中是[类 class],swift中 类.self

1 // UITabBarButton系统的私有类,不能直接使用
2 // if value.isKind(of: UITabBarButton.self){
3 if value.isKind(of: NSClassFromString("UITabBarButton")!){

 

三、extension中可以声明计算属性,但不能声明存储属性,和oc中一样

 1 // 对UIView的扩展
 2 extension UIView{
 3     
 4     // 扩展计算属性
 5     var x:CGFloat{
 6         get{
 7             return frame.origin.x
 8         } set{
 9             frame.origin.x = newValue
10         }
11     }
12 }

 

四、按钮添加点击事件,oc用@,swift用#

button.addTarget(self, action: #selector(composeButtonAction), for: .touchUpInside)

 

五、代理

 1 // 1、定理代理协议,要继承NSObjectProtocol,否则无法使用弱引用
 2 protocol WBTabBarDelegate:NSObjectProtocol {
 3     func didSelectedComposeButton()
 4 }
 5 
 6 // 2、声明代理对象
 7 // 使用weak关键字,协议必须要继承NSObjectProtocol
 8 weak var wbDelegate:WBTabBarDelegate?
 9 
10 // 3、执行代理方法
11 // MARK: - 点击事件
12 func composeButtonAction(){
13         // 执行闭包
14         composeButtonClosure?()
15         
16         // 使用代理对象调用代理方法
17         // ?表示判断前面的对象是否为nil,如果为nil那么后面的代码就不执行了
18         wbDelegate?.didSelectedComposeButton()
19 }
20 
21 // 4、设置代理对象
22 let wbTabBar = WBTabBar()
23 // 设置代理对象
24 wbTabBar.wbDelegate = self
25 
26 // 5、分类中实现代理方法(swift中,如果声明了代理而不去实现代理方法,会报错)
27 // 使用extension可以实现代理方法
28 extension WBMainVC:WBTabBarDelegate{
29     func didSelectedComposeButton() {
30         print("我是代理对象调用过来的")
31     }
32 }

 

Swift使用注意

标签:点击   hup   pre   方法   计算   ret   protocol   点击事件   nbsp   

原文地址:http://www.cnblogs.com/panda1024/p/6143311.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!