-
dyld简介
dyld全名 The dynamic link editor;
是苹果的动态链接器;
是苹果操作系统的一个重要组成部分;
在应用被编译打包成可执行文件之后(即Mach-O),将其交由dyld负责链接,加载程序。
dyld贯穿了A...
-
前言我们得出结论:消息发送objc-msgSend 内部先进行 快速查找 即 缓存(CacheLookup)查找
本文主要继上一章 objc_msgSend 引申,objc_msgSend 是用汇编写的,因为性能好、速度快
汇编的特性:快 + 动态性...
-
前言我们先得出结论:方法调用的本质是 objc_msgSend消息发送
本文主要目的是理解 objc_msgSend 的 方法查找 流程
在上一篇文章中 OC底层原理13:cache-t底层原理分析 中,分析了 cache的写入流程,在写入流程之前,...
-
模式
模式代表 单个值或复合值 的 结构,
可以用模式来匹配各种各样的值,例如:(x,y) 匹配 元组(1,2)
可以从复合值中取出部分或全部值,然后把值绑定一个常量或变量,例如:(let x,y) 提取 (1,2)
模式分类Swift 中模...
-
控制转移
continue
break
fallthrough
return
throw
continue
continue 告诉我不再继续当前循环遍历了,再次从头开始下一次遍历
break
break 会立即结束整个控制流语句,即跳...
-
swift
switch 语句会将一个值与多个可能匹配的模式匹配,然后基于第一个成功匹配的模式来执行合适的代码块
switch 语句一定得是全面的。给定类型里的每一个值都得匹配到一个 switch 的 case。你可以定义一个默认匹配的 case ...
-
for in 循环
使用 for in 循环来遍历序列,比如一个范围的数字,数组中元素或者字符串中的字符
如果你不需要序列的每一个值,你可以使用下划线 _ 来取代遍历名
123456789101112131415// 遍历for i in 0....
-
自定义运算符
除了实现标准的运算符,在 swift 当中还可以声明和实现自定义运算符(custom operators)
新的运算符要在全局作用域内,使用 operator 关键字进行声明,同时还要指定 prefix、infix 或者 postfi...
-
运算符重载
类和结构体 可以为现有的运算符提供自定义的实现,称为 运算符重载
1234567struct Vector2D { var x = 0.0,y = 0.0}let vector = Vector2D(x: 1....
-
运算符优先级和结合性
运算符的优先级使得一些运算符优先于其他运算符,高优先级的运算符会先被计算
结合性定义了具有相同优先级的运算符是如何结合(或关联)的 一一 是左边结合为一组,还是与右边结合为一组。可以这样理解:它们是与左边的表达式结合的 或者 ...