摘要:基本概念 操作系统的设计,因此可以归结为三点: 以多进程形式,允许多个任务同时运行; 以多线程形式,允许单个任务分成不同的部分运行; 提供协调机制,一方面防止进程之间和线程之间产生冲突,另一方面允许进程之间和线程之间共享资源。 进程:是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概
阅读全文
摘要:前言 我们先来看一下 String 常见的使用场景: let str = "String 的 Index 为什么这么难用?" let targetIndex = str.index(str.startIndex, offsetBy: 4) str[targetIndex] 上面这段代码有几个地方容易
阅读全文
摘要:Swift 4 中有一个很大的变化就是 String 可以当做 Collection 来用,并不是因为 String 实现了 Collection 协议,而是 String 本身增加了很多 Collection 协议中的方法,使得 String 在使用时看上去就是个 Collection。 let
阅读全文
摘要:第一种打印变量的指针的方式如下代码所示 在Swift中,我们可以使用withUnsafePointer(to:_:)函数来获取一个变量的指针,如下代码所示: var x = 42 var y = 3.14 var z = "foo" var obj = NSObject() withUnsafePo
阅读全文
摘要:初始化是什么 初始化简而言之是一个准备的过程,就好比你想吃地三鲜,这时候你光在脑海里想,你是吃不到的,你需要买菜、洗菜、切菜、炒菜,然后你才能吃上地三鲜。初始化就相当于买菜、洗菜、切菜、炒菜的过程。回到代码上面,它主要做了下面两件事: 给每一个存储属性赋初始值 执行其他必须的设置 代码示例: cla
阅读全文
摘要:一,前言 1、我们的工程其本身就是在一个bundle之下,叫做mainBundle,swift中获取方式就是Bundle.main。 2、Bundle下可以新建有文件、文件夹。(猜测可能还可以有bundle,因为mainbundle是一个bundle,我们可以在其下新建一个bundle) 3、如果有
阅读全文
摘要:根本区别:String是结构体,NSString是类 在Swift中,结构体是值类型,值类型被赋予给一个变量、常量或者被传递给一个函数的时候,其值会被拷贝。 类是引用类型,与值类型不同,引用类型在被赋值到一个变量、常量或者被传递到一个函数时,其值不会被拷贝 String与NSString有自身独有的
阅读全文
摘要:一,概述 使用OC数组时可以通过removeObject来到达删除某一个元素的目的,但是用swift应该都知道 删除某一个元素的时候提供的是 array.remove(at: <#T##Int#>)并没有提供按照 指定元素删除的方法。 OC NSMutableArray *tempArray = @
阅读全文
摘要:在开发中经常用 target 区分正式、测试环境,用到自定义的预编译宏来判断,OC中可以在 target 的 Preprocessor Macros 里设置,Swift 则不同。 Swift设置预编译宏 本文以自定义 TEST 为例 选中 target > Build Settings > 搜索 S
阅读全文
摘要:1. MARK 我们知道,在OC中我们可以使用pragma mark添加一些说明,能够快速定位到相应的代码, 例如: #pragma mark -说明文字 那么在swift中怎么实现类似的功能呢? 其实也很简单,只要在需要添加说明的地方加上如下格式的注释: // MARK: - 说明文字,带分割线/
阅读全文
摘要:一,概述 在Swift中一般使用“is”关键字实现类型检查,使用“as”关键字实现类型转换,首先说一个类型层次概念 举个例子,创建一个基类: class Person { var weight:Float init(weight:Float) { self.weight = weight } } 之
阅读全文
摘要:一,概述 访问控制限制其他源文件和模块对你的代码的访问。这个特性允许你隐藏代码的实现细节,并指定一个偏好的接口让其他代码可以访问和使用。 你可以给特定的单个类型 (类,结构体和枚举)设置访问级别,比如说属性、方法、初始化器以及属于那些类型的下标。协议可以限制在一定的范围内使用,就像全局常量,变量,函
阅读全文
摘要:NotificationCenter是Swift中一个调度消息通知的类,采用单例模式设计,实现传值、回调等作用.通知的作用还是挺强大的,对于两个不相关的控制器之间,要进行信息的传递,使用通知是个不错的选择. 1、添加通知 /// 通知名 let notificationName = "LXNotif
阅读全文
摘要:一,概述 当我们重写类的时候经常提示要添加代码: required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } 例如: 一般出现两个报错信息: super.init' i
阅读全文
摘要:一,前言 比如说有一个数组 var array = [1,2,3] 如果有个需求是需要用这个数组生成一个新数组为每个元素自身想家的结果数组,那么一般的做法是会通过遍历来完成这个需求,示例如下: var array2:[Int] = [] for item in array { array.appen
阅读全文
摘要:前言 协议,有关开发经验的应该都不陌生,很多语言中都有协议,但是相对来说,Swift中的协议更加强大,灵活。 Swift中协议可以用来定义方法、属性、下标的声明,协议可以被枚举、结构体、类遵守(多个协议之间用逗号隔开) //协议 protocol Drawable { //方法 func draw(
阅读全文
摘要:前言 同其他语言一样,Swift中也是有继承的 值类型(枚举、结构体)不支持继承,只有类支持继承 没有父类的类,称为:基类 Swift并没有像OC、Java那样的规定:任何类最终都要继承自某个基类 子类可以重写父类的下标、方法、属性,重写必须加上override关键字 类继承的内存结构 有如下Ani
阅读全文
摘要:前言 Swift中的Array或Dictionary类型可以通过下标或者键值对的方式来进行数据的访问。实际上在Swift的语法中,下标可以定义在类、结构体和枚举中,可以通过下标(subscript)的方式来对属性进行访问而不用使用专门的存取方法。对于定义的下标不限于一维,可以定义多维的下标来满足需求
阅读全文
摘要:枚举、结构体、类都可以定义实例方法、类型方法 实例方法(Instance Method):通过实例对象调用 类型方法(Type Method):通过类型调用,用static或者class关键字定义,类似OC中的类方法 例如有个类Car,有实例方法getnNum和类型方法getCount class
阅读全文