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)


初始化方法

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


用常量和方法代替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的didSet方法

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

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

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


在在Playground显示一个创建的UI

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


打开Assistant Editor
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift2.0 1.defer译为延缓、推迟之意类似栈 注意作用域,其次是调用顺序——即一个作用域结束(注意),...
    zeqinjie阅读 3,398评论 0 50
  • Swift属性 Swift属性将值跟特定的类,结构体,枚举关联。分为存储属性和计算属性,通常用于特定类型的实例。属...
    小小厨师阅读 868评论 0 0
  • 一直没有时间好好看一下swift,最近复习了一遍语法,这里记录swift学习过程中遇到的一些问题和要点,和Obje...
    bomo阅读 2,393评论 0 25
  • swift的基础语法 这样吧,先把swift4.0教材的先分享给大家。swift4和swift3的基本上没有多大的...
    请输入账号名阅读 15,726评论 12 60
  • 早,16楼 走4公里 晚上跑8公里,本来计划10公里的,没有坚持下来,下次挑战 很多事,其实可以做到,坚持一下,忍...
    丽丽我我阅读 180评论 0 0