swift学习笔记
文章平均质量分 75
qcxNick123
这个作者很懒,什么都没留下…
展开
-
swift基础语法
//简单值//test1/**let 定义常量,只能赋值一次,赋值后就不能在赋值var 定义变量,可以多次赋值*/let a = 50;var b = 40;b = 30;//在swfit中,创建一个常量或变量时,只提供一个值,不用定义类型,让编译器去判断其类型,若初始化时,没有初始化值(赋值),可以在创建的常量或原创 2016-01-21 11:00:35 · 387 阅读 · 1 评论 -
swift类型嵌套
/**1.类型嵌套实例2.类型嵌套引用枚举类型常被用于实现特定类或结构体的功能。也能够在有多种变量类型的环境中,方便地定义通用类或结构体来使用,为了实现这种功能,swift允许你定义类型嵌套,可以在枚举类型、类和结构体中定义支持嵌套类型要在一个类型中嵌套另一个类型,将需要嵌套的类型的定义写在被嵌套类型的区域{}内,而且可以根据需要定义多级嵌套*/原创 2016-01-22 09:38:26 · 638 阅读 · 0 评论 -
swift类型扩展
/**1.扩展语法2.计算型属性3.构造器4.方法5.下标6.嵌套类型扩展就是向一个已有的类、结构体或枚举类型添加新功能。包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)。扩展和OC中的分类(category)类似。不过与OC不同的是,swift的扩展没有名字。如果定义一个扩展向已有类型添加新功能,那么这个心功能对该类原创 2016-01-22 09:39:32 · 509 阅读 · 0 评论 -
swift协议
/**1.协议的语法2.属性要求3.方法要求4.突变方法要求5.协议类型6.委托代理模式7.在扩展中添加协议成员8.通过延展补充协议声明9.集合中的协议类型10.协议的继承11.协议合成12.检验协议的一致性13.可选协议要求Protocol(协议)用于统一方法和属性的名称,而不实现任何原创 2016-01-22 09:41:25 · 429 阅读 · 0 评论 -
swift泛型
/**1.泛型所解决的问题2.泛型函数3.类型参数4.命名类型参数5.泛型类型6.类型约束7.关联类型8.where语句泛型代码可以让你写出根据自我需要定义、适用于任何类型的,灵活且可重用的函数和类型。可以避免重复的代码,用一种清晰和抽象方式来表达代码的意图泛型是swift强大特征中的其中一个,许多swift标准库是通原创 2016-01-22 09:43:36 · 390 阅读 · 0 评论 -
swift学习及感受
之前的博文都是我自己在学习swift时的笔记,在参考学习资料(点击打开链接)的前提下,加上了一些自己的理解。希望对于初学swift的朋友有点帮助。因为参考的资料是1.2版本的,部分不可用代码已经修改成2.0的了但是本人基础比较薄弱,还有部分知识点不是很理解,需要今后继续深入学习。在学习过程中,发现swift是一门集合现代很多语言有点的一门语言,使开发更加精简,逻辑更加清原创 2016-01-22 09:57:17 · 474 阅读 · 0 评论 -
今天开始用swift写服务器(一)
用swift写服务器的已经不是什么新鲜事了,这几年的发展,也是swift在服务端的表现越来越成熟,目前比较流行服务端框架主要有Vapor、Perfect、Kitura和Zewo,他们各有长短,本人这次主要是使用Perfect来写的,因为Perfect的功能比较完善,在GitHub上具有1W+的星,而且有一个非常重要的原因是,Perfect有中文文档。Perfect 包括了您所期待的所有基本功能原创 2017-04-13 18:48:53 · 10829 阅读 · 6 评论 -
使用Swift Package Manager管理项目
今天来讲讲swift的代码资源库管理工具——Swift Package Manager,下面简称SPM。并对上一篇今天开始写swift服务器(一)做一些关于项目管理上的纠正。上篇讲到,因为SPM管理,如果source文件中发生变动,会造成无法正常更新或添加库或框架的问题,故使用workspace管理项目。但是,使用workspace管理,会出现部分C语言的库无法链接的问题,可能本人能力有限,没有找原创 2017-04-19 15:45:54 · 5870 阅读 · 0 评论 -
Swift中performSelector返回值的用法
最近使用swift,翻译OC的代码时,发现performSelector的返回值与OC中的用法相差很大。在OC中返回的是ID类型,而swift中返回的是 Unmanaged! 类型,见下图。在以前OC中,使用performSelector,直接接受返回值,然后转成需要的类型进行操作就可以了,但是在swift中是不行的,下面是按OC直接翻译成swift的代码,基本原理是target-ac原创 2017-08-09 15:30:02 · 7918 阅读 · 0 评论 -
Swift通过协议实现AOP
什么是AOPAOP是OOP的延续,是(Aspect Oriented Programming)的缩写,意思是面向切面编程,是目前软件开发中的一个热点。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。 。 主要的功能是:日志记录,性能统计,安全控制,事务处理,异常处理等等。 主要的意图原创 2017-08-25 15:17:12 · 3752 阅读 · 0 评论 -
Swift泛型在协议中的使用
protocol TestProtocol { associatedtype TestElement func run(_ param: TestElement)}class TestObject: TestProtocol { typealias TestElement = Int func run(_ param: Int) {原创 2017-09-06 14:47:15 · 1290 阅读 · 0 评论 -
swift类型检查
/**1.定义一个类层次作为例子2.检查类型3.向下转型(Downcasting)4.Any和AnyObject的类型检查类型检查是一种检查类实例的方式,并且或者也是让实例作为它的父类或者子类的一种方式类型检查在swift中使用is和as操作符实现,这连个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型也可以用来检查一类是够实现了原创 2016-01-22 09:37:05 · 639 阅读 · 0 评论 -
swift可选链
/**1.可选链可替代强制解析2.为可选链定义模型类3.通过可选链调用属性4.通过可选链调用方法5.使用可选链调用子脚本6.连接多层链接7.链接自判断返回值的方法可选链是一种可以请求和调用属性、方法及子脚本的过程,它的自判断性体现于请求或调用的目标当前可能为空(nil)。如果自判断的目标有值,那么调用就会成功;相反,如果选择的目标为空原创 2016-01-22 09:32:14 · 447 阅读 · 0 评论 -
swift字符与字符串学习
//转义符 /**\0:空字符\\:反斜杠\t:水平制表符类似空格\n:换行符\r:回车符\":双引号\':单引号*/let string1 = "fdhk\nfsfs";//print(string1);let wiseWords = "\"我是要成为海贼王的男\"原创 2016-01-21 13:29:52 · 390 阅读 · 0 评论 -
swift数组与字典
//数组/**数组(Array)是一串有序的由相同类型元素构成的集合。数组中的集合元素是有序的,可以重复出现。*/var array1 = ["324","fssd","rwer"];//直接创建var array2 : [String] = ["rfs","we"];//创建时声明数组元素类型var array3 : ArrayString>;原创 2016-01-21 13:53:33 · 756 阅读 · 0 评论 -
swift流程控制
let point = (1,1);switch point {case (0,0): print("(0,0) is atthe origin");case (_,0): print("(\(point.0),0) is on the X-axis");case (0,_): print("(0,\(point) is o原创 2016-01-21 13:59:28 · 299 阅读 · 0 评论 -
swift函数学习
//函数的定义与调用//定义func sayHolle(personName : String) -> String{ let greeting = "holle," + personName + "!"; return greeting;}//调用print(sayHolle("nick"));原创 2016-01-21 14:07:22 · 356 阅读 · 0 评论 -
swift方法学习
/**1.实例方法2.类型方法类型方法和OC中的类方法相似结构体和枚举能够定义方法是swift与OC/C的主要区别之一。在OC中,类是唯一能定义方法的类型。但在swift中,你不仅能选择是否要定义一个类/结构体/枚举,还能灵活的在你创建的类型(类/结构体/枚举)上定义方法。*///实例方法/**实例方法的语法和原创 2016-01-21 14:12:15 · 354 阅读 · 0 评论 -
swift附属脚本
/**1.附属脚本语法2.附属脚本用法3.附属脚本选项*///附属脚本/**附属脚本可以定义在类、结构体和枚举这些目标中,可以认为是访问对象、集合或序列的快捷方式,不需要再调用实例的特定的赋值和访问方法。对于同一个目标可以定义多个附属脚本,通过索引值类型的不同来进行重载,并且索引值的个数可以是多个*/原创 2016-01-21 14:19:42 · 562 阅读 · 0 评论 -
swift继承
/**1.定义一个基类2.子类生成3.重写4.防止重写一个类可以继承另一个类的方法,属性和其他特性,在swift中,继承是区分类与其他类型的一个基本特征类可以调用和访问父类的方法,属性和附属脚本,并且可以重写这些方法,属性和附属脚本来优化或修改它们的行为。也可以为类中继承来的属性添加属性观察器*/原创 2016-01-22 09:24:58 · 410 阅读 · 0 评论 -
swift构造过程
/**1.存储型属性的初始赋值2.定制化构造过程3.默认构造器4.值类型的构造代理5.类的继承和构造过程6.通过闭包和函数来设置属性的默认值与OC不同,swift的构造器无需返回值*///存储型属性的初始赋值/**为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属原创 2016-01-22 09:27:09 · 618 阅读 · 0 评论 -
swift析构过程
/**1.析构过程原理2.析构函数操作在一个类的实例被释放之前,析构函数被立即调用,用关键字deinit来标示析构函数,类似于初始化函数用init来标示。析构函数只适用于类类型*//**deinit { // 执 析构过程}*/struct Bank { st原创 2016-01-22 09:29:05 · 480 阅读 · 0 评论 -
swift自动引用计数
/**在少数情况下,ARC为了能帮助你管理内存,需要更多的关于你的代码之间关系的信息引用计数仅仅应用于类的实例,结构体和枚举类型是值类型,不是引用类型,也不是通过引用的方式存储和传递为了使之成为可能,无论你将实例赋值给属性,常量或者是变量,属性,常量或者变量,都会对此实例创建强引用。之所以称之为强引用,是因为它会将实例牢牢的保持住,只要强引用还在,实例是不允许被销毁的原创 2016-01-22 09:30:37 · 404 阅读 · 0 评论 -
swift Codable的使用及简单封装
swift在4.0之前,一直没有一套数据解析的方法。现在4.0后,终于有了Codable可以直接将json转成对象,有望取代OC的KVC机制。 先来看看Codablepublic typealias Codable = Decodable & Encodable 基本使用它和NSCoding很像,可以重写decoder和encoder。基本的使用很简单class Pe原创 2018-01-08 17:10:26 · 10409 阅读 · 2 评论