下面5个建议是关于代码层面的
iOS16 扩展了SwiftUI中的 View协议,可以限制Label的最大和最小行数了,这也同样适用于TextField
推荐一个查阅错误码的网站,遇到错误时可以快速知道是什么原因了
属性观察器同样适用于局部变量,这在你调试代码时需要观察变量的变化时非常有用
UIImage只能显示Gif的第一帧,但SwiftUI中的Image可以显示Gif动画
for case let综合了for in以及if let语法。可以简便一些代码的编写
当然你也可以使用for in where来做同样的处理
以下5个Tips是关于工程方面的
使用SwiftLint规范代码风格和静态检测
使用SwiftFormat这个Xcode Source Editor Extension来格式化代码
使用SwiftGen来生成类型安全的资源引用代码
github.com/SwiftGen/Sw…
Xcode15之后也提供了ImageSource和ColorSource这类的扩展
多尝试使用Sourcery来进行元编程,写一些代码模板
以下5个好用的Xcode快捷键
使用 Option + Command + [或] 上下移动选中的行
使用Xcode查找有问题约束
使用 Option + Command + ->或<- 来展开和关闭代码块
使用 Shift + Command + J 快速导航到所在的文件
使用 Control + I 重新缩进代码
我一般都是Command+A,然后Control+I
以下5个Tips是关于使用Swift的
Swift内置支持了text的format,再也不用自己写format
简短的 if let
swift 5.7 之后再也不用if let a = a了,直接if let a。这样就会默认绑定同名的a变量 可以使用下面的正则整体替换
不需要给SwiftUI Image添加单独的accessibilityLabel,只需给它添加localized String就可以添加辅助功能了
使用 Control + SHIFT + 点击 可以创建多个光标,对于修改同名变量有很大帮助。
不过,如果是refactor的话,还是建议使用 Editor -> refactor -> rename功能
对于支持iPad和iPhone的应用,可以写一个通用泛型方法适配细微的区别
func value<T>(iPad: T, iPhone: T) -> T {
switch UIDevice.current.userInterfaceIdiom {
case .phone:
iPhone
case .pad:
iPad
default:
iphone
}
}