Swift学习笔记

写在前面的话,刚开始接触Swift,基于swift3.0。理解的比较浅显,目标是知道怎么用。具体为什么这么用有些还不知道。

1、在swift自定义一个UIView类的时候需要重写override init(frame:CGRect)方法和实现必写的方法required init?(coder aDecoder:NSCoder)

如果只写了override init(frame:CGRect),系统会默认提示实现required init?(coder aDecoder:NSCoder)


Swift学习笔记_第1张图片
初始化方法

2、在OC中的宏定义#define在swift中没有了可以用常量或者函数代替,如常用的:屏幕的宽高和自定义颜色


Swift学习笔记_第2张图片
用常量和方法代替OC中的宏定义(#define)

3、swift中// MARK: - XXXXXX 相当于#pragma mark - XXXXXX

4、代理传值和OC中代理差不多用关键字protocol 

定义一个代理:

protocol MenuViewDelegate:NSObjectProtocol{

            func menuViewWithSelectItem(menuview:MenuView, itemButton:MenuItemButton)

}

因为代理要用weak关键字修饰,如果在代理方法的后面不加上NSObjectProtocol直接用weak修饰的话。编译器会报错。

在一个类中关联代理  weak var delegate:MenuViewDelegate? =nil 代理必须是可选的加“?”

在另一个类使用代理的时候,引入代理不是OC中的“<>” 而是直接在类的父类之后用逗号隔开“,”


引入代理


代理也是页面传值的一种实现方式,还有另外两种(闭包和参数传值具体可借鉴这位网友的文章http://www.jianshu.com/p/636f0aca4fa3)

因为Swift中的结构体和枚举也可以有协议。而结构体和枚举不通过引用计数来管理内存,所以枚举和结构体的协议不能用weak修饰,因此如果在Swift中的协议不加上NSObjectProtocol或class的时候,用weak修饰编译器会报错,具体解释可以看喵神的这篇文章(http://swifter.tips/delegate)

5、在OC中用set方法在Swift中可以用didSet代替

Swift学习笔记_第3张图片
swift的didSet方法

6、在Playground显示一个创建的UI。

      1)、首先要在代码中导入PlaygroundSupport

      2)、在把创建好的UI添加到PlaygroundPage.current.liveView上


Swift学习笔记_第4张图片
在在Playground显示一个创建的UI

打开右侧的UI呈现页面有两个方法  1:“Alt + Shift + Command + Return”2:打开Assistant Editor如下图


Swift学习笔记_第5张图片
打开Assistant Editor

你可能感兴趣的:(Swift学习笔记)