这些Tips,从今天就用起来吧

119 阅读1分钟

下面5个建议是关于代码层面的

iOS16 扩展了SwiftUI中的 View协议,可以限制Label的最大和最小行数了,这也同样适用于TextField

image.png

推荐一个查阅错误码的网站,遇到错误时可以快速知道是什么原因了

www.osstatus.com/search/resu…

image.png

属性观察器同样适用于局部变量,这在你调试代码时需要观察变量的变化时非常有用

image.png

UIImage只能显示Gif的第一帧,但SwiftUI中的Image可以显示Gif动画

image.png

for case let综合了for in以及if let语法。可以简便一些代码的编写

当然你也可以使用for in where来做同样的处理 image.png

以下5个Tips是关于工程方面的

使用SwiftLint规范代码风格和静态检测

github.com/realm/Swift…

使用SwiftFormat这个Xcode Source Editor Extension来格式化代码

github.com/nicklockwoo…

使用SwiftGen来生成类型安全的资源引用代码

github.com/SwiftGen/Sw… Xcode15之后也提供了ImageSource和ColorSource这类的扩展 image.png

多尝试使用Sourcery来进行元编程,写一些代码模板

github.com/krzysztofza…

以下5个好用的Xcode快捷键

使用 Option + Command + [或] 上下移动选中的行

image.png

使用Xcode查找有问题约束

image.png

使用 Option + Command + ->或<- 来展开和关闭代码块

image.png

使用 Shift + Command + J 快速导航到所在的文件

image.png

使用 Control + I 重新缩进代码

我一般都是Command+A,然后Control+I image.png

以下5个Tips是关于使用Swift的

Swift内置支持了text的format,再也不用自己写format

image.png

简短的 if let

swift 5.7 之后再也不用if let a = a了,直接if let a。这样就会默认绑定同名的a变量 可以使用下面的正则整体替换

image.png

不需要给SwiftUI Image添加单独的accessibilityLabel,只需给它添加localized String就可以添加辅助功能了

image.png

使用 Control + SHIFT + 点击 可以创建多个光标,对于修改同名变量有很大帮助。

不过,如果是refactor的话,还是建议使用 Editor -> refactor -> rename功能 image.png

对于支持iPad和iPhone的应用,可以写一个通用泛型方法适配细微的区别

func value<T>(iPad: T, iPhone: T) -> T {
    switch UIDevice.current.userInterfaceIdiom {
        case .phone:
            iPhone
        case .pad:
            iPad
        default:
            iphone
   }
}

资料

  1. www.swiftwithvincent.com/newsletter/…
  2. www.swiftwithvincent.com/newsletter/…
  3. www.swiftwithvincent.com/newsletter/…
  4. www.swiftwithvincent.com/newsletter/…