![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OC老鸟学Swift
码农-皮皮蟹
这个作者很懒,什么都没留下…
展开
-
cocoapods的优点、安装及使用
CocoaPods是OS X和iOS下的一个第三方开源类库管理工具,通过CocoaPods工具我们可以为项目添加依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。CocoaPods的优势使用前我们导入第三方开源库的时候,我们需要1、把开源库的源代码复制到项目中。2、添加一些依赖框架和动态库。3、设原创 2017-07-20 18:18:16 · 1077 阅读 · 0 评论 -
swift文档笔记(十二) -- 构造过程
构造过程是使用类、结构体或枚举类型的实例之前的准备过程。在新实例可用前必须执行这个过程,具体操作包括设置实例中每个存储型属性的初始值和执行其他必须的设置或初始化工作。1.存储属性的初始赋值 类和结构体在创建实例时,必须为所有存储型属性设置合适的初始值。存储型属性的值不能处于一个未知的状态。如果是可选类型,会默认设置为nil。你可以在构原创 2018-01-15 14:48:14 · 149 阅读 · 0 评论 -
swift文档笔记(十三) -- 循环引用
对象的相互持有会引起 循环引用1.解决实例之间的循环强引用 弱引用声明属性或者变量时,在前面加上 weak关键字表明这是一个弱引用。 ARC会在引用的实例被销毁后自动将其赋值为 nil。并且因为弱引用可以允许它们的值在运行时被赋值为 nil,所以它们会被定义为可选类型变量,而不是常量。 无主引用 你可以原创 2018-01-16 15:10:44 · 180 阅读 · 0 评论 -
swift文档笔记(十四) -- 错误处理
1.表示并抛出错误 我们一般实现Error 协议的枚举来构建错误状态:enum VendingMachineError: Error {case invalidSelection //选择无效 case insufficientFunds(coinsNeeded: Int) //金额不足 case outOfStock //缺货原创 2018-01-16 15:53:01 · 193 阅读 · 0 评论 -
swift文档笔记(十六) -- 扩展
扩展 就是为一个已有的类、结构体、枚举类型或者协议类型添加新功能。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)。 Swift 中的扩展可以:• 添加计算型属性 • 定义实例方法和类型方法• 提供新的构造器(只限便利构造器)• 定义下标 • 定义和使用新的嵌套类型• 使一个已有类型符合某个协议原创 2018-01-16 16:47:12 · 178 阅读 · 0 评论 -
swift文档笔记(十七) -- 协议
协议就是协议里的属性方法,在遵循协议的类·结构体·枚举中,必须要有实现。1.协议语法 protocol SomeProtocol {// 这里是协议的定义部分 var mustBeSettable: Int { get set }//读写 var doesNotNeedToBeSettable: Int {原创 2018-01-16 17:40:09 · 243 阅读 · 0 评论 -
swift文档笔记(十八) -- 泛型
泛型代码让你能够根据自定义的需求,编写出适用于任意类型、灵活可重用的函数及类型。它能让你避免代码的重复,用一种清晰和抽象的方式来表达代码的意图1.泛型函数泛型函数可以适用于任何类型。基本格式:func swapTwoValues(_ a: inout T, _ b: inout T) { let t原创 2018-01-17 14:34:24 · 245 阅读 · 0 评论 -
swift文档笔记(十九) -- 访问控制
访问控制可以限定其他源文件或模块中的代码对你的代码的访问级别。这个特性可以让我们隐藏代码的一些实现细节,并且可以为其他人可以访问和使用的代码提供接口。Swift 中的访问控制模型基于模块和源文件这两个概念。模块指的是独立的代码单元,框架或应用程序会作为一个独立的模块来构建和发布。在 Swift中,一个模块可以 使用 import 关键字导入另外一个模块。原创 2018-01-17 14:56:31 · 293 阅读 · 0 评论 -
swift文档笔记(十五) -- 类型转换
1.检查类型用类型检查操作符( is)来检查一个实例是否属于特定子类型。若实例属于那个子类型,类型检查操作符返回 true,否则返回 false。 if item is Movie { }2.类型转换操作符(as,as?或 as!)。当要将类型转换成超类时,和桥接OC对象时,用(as)。原创 2018-01-16 16:32:13 · 193 阅读 · 0 评论 -
swift文档笔记(一) -- 基础部分
1.变量与常量用 var 来声明变量,用let来声明常量。 变量声明后,可以改变。常量声明后,如果是值类型的无法作任何改变,如果是引用类型,引用所指向的数据仍然可以改变。比如声明一个let a = 1,那么a无法改变。如果let b = SomeClass(),b无法改变,但b之下的属性可以改变。注:在swift中String,Array,Dicationary是值原创 2018-01-10 09:56:14 · 199 阅读 · 0 评论 -
swift文档笔记(十一) -- 继承
一个类可以继承另一个类的方法,属性和其它特性。当一个类继承其它类时,继承类叫子类,被继承类叫超类(或父类)。 不继承于其它类的类,称之为基类。 Swift中的类并不是从一个通用的基类继承而来。如果你不为你定义的类指定一个超类的话,这个类就自动成为基类。1.重写 子类可以为继承来的实例方法,类方法,实例属性,或下标提供自己定原创 2018-01-15 14:35:41 · 150 阅读 · 0 评论 -
swift文档笔记(十) -- 属性与方法
1.存储属性延迟存储属性 延迟存储属性是指当第一次被调用的时候才会计算其初始值的属性。在属性声明前使用 lazy来标示一个延迟存储属性。 class DataManager { lazy var importer = DataImporter() var data = [String]()} 注意:如果一个被标记为 la原创 2018-01-15 11:18:27 · 209 阅读 · 0 评论 -
swift文档笔记(九) -- 类和结构体
1.类和结构体对比 Swift 中类和结构体有很多共同点。共同处在于: • 定义属性用于存储值• 定义方法用于提供功能• 定义下标操作使得可以通过下标语法来访问实例所包含的值 • 定义构造器用于生成初始化值• 通过扩展以增加默认实现的功能 •实现协议以提供某种标准功能 与结构体相比,类还有如下的附加功能:• 继承允许一个类继承另一原创 2018-01-15 10:59:54 · 164 阅读 · 0 评论 -
swift get、set、willSet和didSet
在OC中我们经常重写属性的get和set方法来刷新UI之类的事,那在swift中,怎么实现get和set方法呢。 代码如下:这里另外初始化一个_text的变量,存储新值,防止get方法死循环。在set方法里有个newValue的变量,即是将要赋予的新值。另外在swift中有一套新方法,willSet和didSet,具体代码如下:其中willSe原创 2017-07-31 18:39:29 · 11194 阅读 · 0 评论 -
Swift - 自动布局库SnapKit的使用详解
http://www.hangge.com/blog/cache/detail_1097.html原创 2017-07-19 18:38:04 · 473 阅读 · 0 评论 -
Swift和Objective-C混编要点
前言Swift已推出数年,与Objective-C相比Swift的语言机制及使用简易程度上更接地气,大大降低了iOS入门门槛。当然这对新入行的童鞋们来讲,的确算是福音,但对于整个iOS编程从业者来讲,真真是,曾几何时“高大上”,转瞬之间“矮矬穷”。再加上培训班横行,批量批发之下,iOS再也看不到当年的辉煌。往事不再提,事还是要做滴。iOS10推出后,紧跟着Xco转载 2017-08-03 20:34:41 · 956 阅读 · 0 评论 -
使用陀螺仪实现王者荣耀首页效果(5毛特效版)
参考资料:http://www.cnblogs.com/wayne23/p/3671101.html//// LBGyroscopeCtrl.swift// XLBPracticeDemo//// Created by admin on 17/9/1.// Copyright © 2017年 YunChuangCheLian. A原创 2017-09-08 15:40:11 · 2200 阅读 · 0 评论 -
swift文档笔记(三) -- 字符串和字符
1.空字符串var emptyString = "" //空字符串字面量 var anotherEmptyString = String() //初始化方法// 两个字符串均为空并等价。 您可以通过检查其 Bool类型的 isEmpty属性来判断该字符串是否为空: emptyString.isEmpty2.遍历字符串原创 2018-01-11 11:20:00 · 207 阅读 · 0 评论 -
swift文档笔记(四) -- 集合类型
Swift 语言提供 Arrays、 Sets 和 Dictionaries 三种基本的 合类型用来存储合数据。数组(Arrays)是有序数据的 。集合(Sets)是无序无重复数据的。字典(Dictionaries)是无序的键值对的。 1.数组创建空数组 var someInts = [Int]()原创 2018-01-13 09:35:43 · 201 阅读 · 0 评论 -
swift文档笔记(五) -- 控制流
1.For-In 循环 for index in 1...5 {//1到5 } for index in 1..//1到4 }2.While循环while 循环会一直运行一段语句直到条件变成 false。这类循环适合使用在迭代次数未知的情况• while循环,每次在循环开始时计算条件是否符合;原创 2018-01-13 10:08:26 · 191 阅读 · 0 评论 -
swift文档笔记(六) -- 函数
1.多重返回值函数 你可以用元组(tuple)类型让多个值作为一个复合值从函数中返回 func minMax(array: [Int]) -> (min: Int, max: Int) { var currentMin = array[0] var currentMax = array[0] for value in arra原创 2018-01-13 16:16:04 · 162 阅读 · 0 评论 -
swift文档笔记(七) -- 闭包(Closures)
闭包是自包含的函数代码块,可以在代码中被传递和使用。Swift中的闭包与 C和 Objective-C中的代码块(b locks)以及其他一些编程语言中的匿名函数比较相似。 函数和闭包都是引用类型。1.闭包表达式语法 闭包表达式语法有如下的一般形式:{ (parameters) -> returnType in原创 2018-01-13 23:01:58 · 168 阅读 · 0 评论 -
swift文档笔记(八) -- 枚举
1.枚举语法使用 enum 关键词来创建枚举:enum SomeEnumeration { // 枚举定义放在这里 } 2.关联值与原始值enum ASCIIControlCharacter: Character { case tab = "\原创 2018-01-15 10:07:07 · 167 阅读 · 0 评论 -
swift文档笔记(二) -- 运算符
1.空合运算符空合运算符( a ?? b)将对可选类型a进行空判断,如果a包含一个值就进行解封,否则就返回一个默认值b。表达式a必须是 Optional 类型。默认值b的类型必须要和a存储值的类型保持一致。 let defaultColorName = "red"var userDefi原创 2018-01-10 15:35:43 · 161 阅读 · 0 评论