首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
swift从入门到精通
可爱亲宝宝
创建于2021-12-10
订阅专栏
本专栏主要介绍关于swift的基本使用,以及进阶内容,汇编原理等内容。
等 4 人订阅
共28篇文章
创建于2021-12-10
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
汇编简单窥探一下闭包
1.闭包定义 闭包能够捕获和存储定义在其上下文中的任何常量和变量的引用,这也就是所谓的闭合并包裹那些常量和变量,因此被称为“闭包”,Swift 能够为你处理所有关于捕获的内存管理的操作。闭包是一个引用
用汇编窥探枚举内存,新手值得学习
汇编语言 语言流程 高级语言 -> 汇编语言 -> 机器语言 -> 计算机 高级语言:例如swift,java 汇编语言:movq %rax %rdi 机器语言:1001010100101 总结:汇编
聊一下Swift的访问权限
1.访问级别 1.1.open open的权限无疑是最大的,可以在允许的实体模块,其它模块中访问,并且允许其它模块进行继承和重写。 举个例子:
Swift之面向协议编程POP
Apple于2015年WWDC提出,Swift是世界上第一门面向协议编程的语言。它是swift2.0引入的一种新的编程范式,通过协议扩展,协议继承和协议组合的方式来设计编写代码。
swift从入门到精通01-基础语法
在swift中,我们定义常量是用let,它只能赋值一次,而且需要在使用之前必须赋值一次。 在swift中,我们定义变量是用var,通过赋值,编译器会自动推断出变量的类型。 这里描述的类型转换先展示浅显的,更深次性待后面补充。 当然,如果字面量是数字是可以直接添加的。 元组是一种…
swift从入门到精通02-流程控制
ifelse使用方法和OC方法基本是一样的,唯一区别是swift使用时,if后面的条件只能是BOOL类型。 while循环语句和OC的用法也是差不多的,其中repeat-while相当于do-while。 for语句,主要用得最多的就是forin,也是一个循环语句。 如果是两个…
swift从入门到精通03-函数
函数可以理解为封装的方法,swift中使用 func 来定义函数。 如果函数是单一表达式,我们可以直接省略 return。 在oc中,只能返回单一的值,swift已元组方式可以返回多个值。 我们可以给传参定义一个标签,和给参数赋予默认值。如果用 _ 符号,代表不用显示参数名。 …
swift从入门到精通04-枚举
枚举的成员值和其他类型的值关联存储在一起。 我们可以在枚举中给每个枚举成员进行赋值。 枚举成员里面有该枚举,则为递归枚举。我们用indirect 修饰。
swift从入门到精通05-可选项
可选项(optIonal)也叫可选类型,它允许把值设为nil,一般我们都在类型名称后面加?。 如果从可选类型中取出被包装的内容,一般用感叹号!进行强制解包。 a??b ,a是可选项,b的存储类型和a相同,如果a为nil,则返回b,否则返回a。 当guard 语句为false,则…
swift从入门到精通06-结构体和类
所有结构体都有一个编译器自动生成的初始化器。 类和结构体相似,但是编译器没有为类自动生成初始化器。 结构体是值类型(枚举也是值类型),类是引用类型(指针类型)。 值类型是直接将内容拷贝一份,就是深拷贝。 引用类型是直接将内容地址拷贝一份,相当于浅拷贝。
swift从入门到精通07-闭包
在swift中,我们可以通过func来定义一个函数,也可以用闭包表达式定义一个函数。 如果将一个很长的闭包表达式作为函数的最后一个实参,使用尾随闭包可以增强函数的可读性。即可以把大括号抽出来,放到后面。 如果闭包表达式是唯一实参,则可以不写括号。 一个函数和它所捕获的变量\常量…
swift从入门到精通08-属性
存储属性类似于结构变量,存储在实例的内存中,结构体和类都能定义存储属性。在创建实例的时候,必须为所有的存储属性设置一个初始值。 计算属性本质就是方法,它不占用实例的内存,枚举,结构体和类都能定义计算属性。定义计算属性,只能用var。 使用lazy可以定义一个延迟存储属性,在第一…
swift从入门到精通09-方法
方法有实例方法,类型方法。枚举,结构体,类都可以定义方法。 实例方法:通过实例对象调用方法。 类型方法:通过类型调用,用static或者class修饰。 结构体和枚举是值类型,默认情况下,值类型的属性不能被自身的实例方法修改。 但是如果在func关键字前加mutating可以允…
swift从入门到精通10-下标
使用subscript可以给任意类型(枚举、结构体、类)增加下标功能。 subscript的语法类似于实例方法、计算属性,本质就是方法(函数)。 如果返回的是结构体实例,则必须设置下标的set方法。 如果返回的是类实例,则不用设置下标的set方法。 subscript也可以接收…
swift从入门到精通11-继承
值类型(枚举,结构体)不支持继承,只有类支持继承。 没有父类的类称为基类。子类可以重写父类的下标,方法,属性,重写必须加入override关键字。 子类可以将父类的属性重写为计算属性。 子类不可以将父类的属性重写为存储属性。 只能重写var属性,不能重写let属性。 重写时,属…
swift从入门到精通12-初始化
类,结构体,枚举都可以定义初始化器。类有两种初始化器,一种是指定初始化器,另一种是便捷初始化器。 第一阶段:初始化所有存储属性。 外层调用初始化器,分配内存实例,但并未初始化,指定初始化器先初始化存储属性,再调用父类初始化器,形成初始化链。 从顶部初始化器往下,链中每一个指定初…
swift从入门到精通13-可选链
多个?可以链接在一起,如果任何一个节点为nil,那么整个链接就会调用失败。
swift从入门到精通14-协议
协议可以用来定义方法、属性、下标的声明,协议可以被枚举、结构体、类遵守(多个协议之间用逗号隔开)。协议定义的方法不能有默认的参数值,且定义的内容必须实现。 为了保证通用,协议中必须用static定义类型方法、类型属性、类型下标。 只有协议中的实例方法标记为mutating,结构…
swift从入门到精通15-错误处理
一般使用枚举自定义错误码。 函数内部可以通过throw抛出异常,可能抛出的函数必须加上throws声明。 调用函数需要用try调用可能抛出的异常。 使用do-catch来捕捉错误。 如果这一层不捕捉,可以在当前函数加上throws声明,让错误抛给上一层函数。 如果最顶层没有捕捉…
swift从入门到精通16-泛型
泛型可以类型参数化,提高代码复用率,减少代码量。 关联类型的作用:给协议中用到的类型定义一个占位名称,协议中可以拥有多个关联类型。 使用some关键字来声明一个不透明类型,来限制只返回一种类型。
下一页