一. 基本知识
swfit5.1后ABI 基本稳定
-
API
:Application Programming Interface
源代码跟库之间的接口 -
ABI
: Application Binary Interface :应用程序二进制接口:应用程序跟操作系统的接口
3.OC
跟swift
的编译器前端分别是:clang 和 swiftC 都存在在xcode里面
二. 一些关于SwiftC的简单操作:<简单了解>
- 导出swift文件的语法树:
swiftc -dump-ast main.swift
- 生成简洁的SIL代码:
swiftc -emit-sil main.switf
就是swift的中间代码 - 生成LLVM IR代码:
swiftc -emit-ir main.swift -o main.ll
- 生成汇编代码:
swiftc -emit-assembly main.swift -o main.s
后面-o main.s
就是导出的意思 - OC 跟 swift生成的汇编代码是一致的
三.Hello world
- 不需要编写
main
函数,Swift将全局范围内的首句可执行代码作为程序的入口 -
var
、let
变量跟常量的确定,会自动推断类型 - 直接打印变量
print(a),print(b)
,插入字符串打印print("hello world - \(a)")
四.Playground 的使用
可以快速的预览代码效果,首页创建新的空工程
快捷键 command + Shift + enter 快速运行playground
快速预览 UIKit, 不过还需要导入
import PlaygroundSupport
预览的代码PlaygroundPage.current.liveView = view
view
为 要展示视图command + 0, command + 1
隐藏跟展示侧边栏多个页面的展示, 点击 playground 新建,注意 source 文件夹的文件目录
注释:Swift 支持嵌套注释。注释支持
markup (类似 markDown)
语法://: #一级标题
MarkUp 语法只在playground里面有效
五.常量与变量
- 常量 只能赋值一次表明类型
let age:Int = 10
- 它的值不要求在编译时确定:就是可以给一个常量赋值一个变量
- 变量跟常量在初始化之前都不允许被使用
常见的数据类型
- 值类型:枚举(
optional
)、结构体(bool, Int,Float,Double,String,Array,Dictionary....)
- 引用类型:类
class
- 整数类型:
Int8,Int16,Int32,Int64,UInt8,UInt16....
-
print(Int16.max)
取这个符号的最大值print(Int64.min)
-
Bool
值ture
false
- 字符类型 也是双引号,需要额外表明 :
character
类型转换 元组
类型转换
UInt16(b) + UInt16(a)
元组:多种数据类型的组合
(404,"error message")
let error = (404,"errormsg") print("errormsg = \(error.1)")
元组的描述:
let msgAndStatus = (statsuCode: 404,errorMsg:"Not found") print(msgAndStatus.statsuCode)