Fish Yan

This is My World

OC

OC语言的基础理论tips

OC语言的基础理论Tips Tip1. 分类 Category 的实现原理 category 实际上是结构体,运行时决定 可以添加类方法,方法,协议,属性。 新添加的方法会在运行时倒序插入到原有的类最前面, Category中有同名方法,最后编译的那个方法会生效。(swift中不允许同名扩展方法) 作用:将一个类拆分为多个,是不相关的业务相互分离 Categor...

7. Swift 构造和析构

Swift

7. Swift 构造和析构 在类,结构体,枚举的使用之前必须要进行构造过程,其中类需要通过析构过程来释放资源,结构体和枚举不需要。swift 的构造过程和 OC 的构造过程又有一些不同,swift 的构造过程不需要返回值。 构造器 构造器的一般形式 init() { // 在此处执行构造过程 } 1.默认构造器 如果结构体和类所有属性都具有默认值,同时没有自定义构造器,...

6. Swift Enum

Swift

6. Swift Enum 枚举为一组相关的值定义了一个共同的类型,使你可以在你的代码中以类型安全的方式来使用这些值。 swift 中的枚举,比 oc 中的枚举更加强大。在 oc 中枚举的值只接受 Int 类型的值,但是在 swift 中可以接受很多基本类型的值,甚至是另一个枚举类型。swift 中的枚举是属于一等类型,具备 class 的很多特性,例如计算属性,构造函数等。 枚举的基...

5. Swift 中的闭包

Swift

5. Swift 中的闭包 闭包定义 闭包(Closure)是自包含的函数代码块,可以在代码中被传递和使用。swift 中的闭包和 c 或 oc 中的 block 以及其他的编程语言的匿名函数类似。 在 swift 中闭包的范围比较广泛,不只是 oc 中 block 这种的,还包含像上节中讲到的全局函数和嵌套函数,全局函数是一种有名字但不会捕获任何只的闭包。嵌套函数是一种有名字可以捕获...

4. Swift 中的函数

Swift

4. Swift 中的函数 Swift 中的函数,和我们 OC 中所说的方法类似,但不完全相同,大多数使用场景可以替换。 1.函数的定义和调用 // 函数的定义 func greet(name: String) -> String { return "hello " + name } // 函数的调用 print(greet(name: "小明")) Swift ...

3. Swift 中的可选值

Swift

3. Swift 中的可选值 Swift 中较为重要的就是可选值的加入。这也使 Swift 更加灵活,同时也保证了尽可能少的出错。区别于 OC,在 OC 中没有可选类型这一概念,所有的类型都有可能存在为 nil 的情况,但是在 Swift 中,在声明一个实例的时候就可以告诉他是否可以为 nil。 比如在 OC 中声明NSString *str = nil是完全没有问题的,但是在 ...

2. Swift 中的那些常用的类型

Swift

2. Swift 中的那些常用的类型 Swift 语言因为是从底层重新去构建,区别于 OC 是基于 C,所以在大多数类型的使用上尽可能的做了去 NS 化,使语言更加简洁。所以在 Swift 中大多数类型都可以看到已经没有了前缀。 下面就列举一下常用的类型的变化,我不会去列举所有的类型,那也不太现实,其实我列举几个剩下的大家都能猜大概要怎么写了。 1.基本数据类型 BOOL –&...

1. Swift 中的 let 和 var

Swift

1. Swift 中的 let 和 var Swift 中的变量声明相对于 OC 中简化了很多。可变与不可变取决于声明的方式,不在取决于类型了,这样简化了很多不必要的类型。比如 OC 中可变的为 NSMutableArray,不可变的是 NSArray,而 Swift 中的数组不管可变与不可变就是 Array 。 Swift 中变量的声明 在 Swift 中声明变量有两种方式:...

Swift 4.1 Released!

Swift

Swift 4.1 Released! Swift 4.1现已正式发布!它包含核心语言的更新,包括对泛型,新构建选项的更多支持,以及对Swift Package Manager和Foundation的小改进。在稳定ABI方面也取得了重大进展。 Doug Gregor和Ben Cohen最近在Swift Unwrapped播客的两部分集中讨论了许多这些功能。查看这里的播客:第1部...

一眼看穿 swift (从 OC 转来 Swift)

Swift

一眼看穿 swift (从 OC 转来 Swift) #Swift let, var let 声明为不可变类型 var 声明为可变类型 去 NS 化,swift 会尽可能的把常用类型的前缀去掉 BOOL –> Bool YES/NO --> true/fasle != 0/1 NSInteger –> Int CGFloat –> Float Do...