摘要:
一、Swift的访问控制 Swift中的访问控制模型基于模块和源文件这两个概念 Public:【使用public修饰】【范围大】可以访问当前模块及其他模块中的任何实体(通常用于Framework) Internal:【使用internal修饰】【范围中】可以访问当前模块中的任何实体,但是在模块外无法 阅读全文
摘要:
一、Swift反射 所谓反射就是可以动态获取类型、成员信息,在运行时可以调用方法、属性等行为的特性。 在使用OC开发时很少强调其反射概念,因为OC的Runtime要比其他语言中的反射强大的多。不过在Swift中并不提倡使用Runtime,而是像其他语言一样使用反射(Reflect),即使目前Swif 阅读全文
摘要:
一、Swift泛型介绍 泛型是为Swift编程灵活性的一种语法,在函数、枚举、结构体、类中都得到充分的应用,它的引入可以起到占位符的作用,当类型暂时不确定的,只有等到调用函数时才能确定具体类型的时候可以引入泛型。我们之前实际上已经使用过泛型,例如:Swift的Array和Dictionary类型都是 阅读全文
摘要:
一、Swift扩展 扩展就是向一个已有的类、结构体或枚举类型添加新功能,这包括在没有权限获取原始源代码的情况下扩展类型的能力。扩展和 Objective-C中的分类(category)类似,但是它要比分类强大的多,它不仅可以扩展类,还可以扩展协议、枚举、结构体,另外扩展也不局限于扩展方法,还可以扩展 阅读全文
摘要:
一、Swift协议 协议是为方法、属性等定义一套规范,没有具体的实现,类似于Java中的抽象接口,它只是描述了方法或属性的骨架,而不是实现。方法和属性实现还需要通过定义类,函数和枚举完成。 协议不指定是否该属性应该是一个存储属性或者计算属性,它只指定所需的属性名称和读写类型。属性要求总是声明为变量属 阅读全文
摘要:
一、Swift的枚举 枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值。Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法 OC中枚举的本质就是整数,所以OC中的 阅读全文
摘要:
一、Swift的类class 作为一门面向对象语言,类也是Swift的非常重要的类型,我们先来看下一个简单的类 二、属性 Swift中淡化了成员属性的概念,把属性分为两种: 可以控制读写操作(var表示可读可写,let表示只读) 通过属性监视器来属性的变化(willSet、didSet) 快速实现懒 阅读全文
摘要:
上一节我们讲了Swift的基础部分,例如数据类型、运算符和控制流等,现在我们来看下Swift的函数和闭包 一、Swift函数 函数是一个完成独立任务的代码块,Swift中的函数不仅可以像C语言中的函数一样作为函数的参数和返回值,而且还支持嵌套,支持函数参数默认值、可变参数等。 二、闭包 Swift中 阅读全文
摘要:
一、Swift语言介绍 Swift是苹果2014年推出的全新的编程语言,它继承了C语言、ObjC的特性,且克服了C语言的兼容性问题。 Swift发展过程中不仅保留了ObjC很多语法特性,它也借鉴了多种现代化语言的特点,在其中你可以看到C#、Java、Javascript、Python等多种语言的影子 阅读全文
摘要:
一、日志重定向 我们在iOS开发过程中,我们时常会使用NSLog打印到控制台的日志信息进行代码调试,但这样调试的前提是连接上Xcode。如果进行真机调试但同时又不能连接Xcode的时候,就不能直接在xcode的控制台查看输出日志了,但是程序还是会执行那些Log的,如果要查看这些日志,我们就需要把输出 阅读全文
摘要:
FRP,全称为Functional Reactive Programming,是一种响应变化的编程范式,最近几年比较火,大概的理解就像这样: 当a的值或者b的值发生变化时,c的值会自动响应a的值或b的值变化的信号,自动更正自己的值,类似这种编程思想就称为FRP。 FRP提供了一种信号机制来实现这样的 阅读全文
摘要:
一、MJExtension第三方框架 我们在iOS开发过程中,我们常常需要将字典数据(也就是JSON数据)与Model模型之间的转化,例如网络请求返回的微博数据、等等,如果我们自己全部手动去创建模型并赋值,都是一些毫无技术含量的代码,费时费力,而且还可能会赋值出错,让我们很头疼。 MJExtensi 阅读全文
摘要:
一、时间和日期计算 我们在应用开发中,时常需要和时间打交道,比如获取当前时间,获取两个时间点相隔的时间等等,在iOS开发中与时间相关的类有如下几个: 二、NSDate时间点 NSDate存储的是世界标准时(UTC),输出时需要根据时区转换为本地时间 除了最后的2个获取极早极晚时间的方法,其他方法都有 阅读全文