Swift 减少指令数量的编码 Tips

Swfit 生成的指令的量级整体来看比 OC 多,梳理了一些 Tips 在编码时多留意,能减少一点点指令数量,蚊子腿也是肉。

避免 Swift 去重写 OC 的构造函数

  • 会新增 objc_msgSendSuper2 调用父类函数指令;
  • 影响该函数的内联,在调用次数少时能减少很多指令;
  • Swift 调用 super 若是父类显式定义的,还会新增不少隐式强制转换指令,详情可看:juejin.cn/post/743075...

多用临时变量,减少高成本调用

临时变量直接寄存器实现读写,很多场景都可减少指令。 比如减少函数调用次数、减少实例属性访问次数:

ini 复制代码
value?.doA()
let a = value?.getB()
let b = value?.getB()
->
guard let value = value else { return }
value.doA()
let a = value.getB()
let b = a

闭包减少外部变量引用

比如使用静态属性取代实例属性:

vbnet 复制代码
do () { self.key }
->
do () { AnyClass.key }

使用字面量方式初始化容器

css 复制代码
        var dic = [String : Any]()
        dic["fileId"] = fileElementId
-> 
        ["fileId": fileElementId]

使用字符串插值替代字符串连接

css 复制代码
let _ = a + b
->
let _ = "\(a)\(b)"

减少分支

kotlin 复制代码
If (a < 3) { return true } else { return false }
->
return a < 3
sql 复制代码
return "iPhone9,2" == result || "iPhone9,4" == result || "iPhone10,2" == result || "iPhone10,5" == result
->
return ["iPhone9,2", "iPhone9,4", "iPhone10,2", "iPhone10,5"].contains(result)
相关推荐
东坡肘子13 小时前
让 AI 从称手到称心 -- 肘子的 Swift 周报 #134
人工智能·swiftui·swift
sakiko_2 天前
UIKit学习笔记3-布局、滚动视图、隐藏或显示视图
前端·笔记·学习·objective-c·swift·uikit
sakiko_3 天前
UIKit学习笔记5-使用UITableView制作聊天页面
笔记·学习·swift·uikit
朗清风3 天前
“\“在字符串表示正则语义中的作用
swift
四眼蒙面侠4 天前
深入 SwiftWork(第 0 篇):用 SwiftUI 构建一个 Agent 可视化工作台
swift·openagentsdk
sakiko_5 天前
UIKit学习笔记4-使用UITableView制作滚动视图
笔记·学习·ios·swift·uikit
四眼蒙面侠6 天前
深入 Open Agent SDK(番外篇):实战验证——把 SDK 塞进一个 macOS 原生 Agent 应用
swift·claudecode·bmad·agentsdk·openagentsdk
2501_915106327 天前
在Mac上搭建iOS开发环境的详细步骤与注意事项
ide·vscode·macos·ios·个人开发·swift·敏捷流程
harder3217 天前
RMP模式的创新突破
开发语言·学习·ios·swift·策略模式
sakiko_7 天前
UIKit学习笔记2-组件嵌套、滚动视图等
笔记·学习·objective-c·swift·uikit