分享一下一个 Web 前端刚学习 Swift 时候的心得博文

149 天前
 Xheldon
地址是:

https://www.xheldon.com/tech/app-dev-journey-swift

是我的个人博客,没兴趣的不用点进去了,免得说我挂外链引流。

主要内容是本人作为 9 年 Web 前端刚接触 Swift 的时候跟 TS 对比的差异点总结,当然司空见惯的差异就没写,比如 TS 中没有数字类型 Int 和 Double 这种的。
1884 次点击
所在节点    Swift
7 条回复
Zrocky
149 天前
写得很好
Julaoshi
148 天前
文章不错。不过博客有广告,太影响阅读体验了。
RayJiang9
148 天前
写得很好,枚举的关联值很好用的,在实际项目中也是在大量使用。
举个栗子,处理 IM 的自定义消息可以这样写:
由于枚举的特性,所有写 switch 的地方(如果没有 default ),会编译报错,这样在新增自定义消息类型的时候不会漏掉所有要改的地方。
其次可以把需要用的字段从 JSON 里解析出来,放进枚举方便使用。

enum IMMessageType {
/// 0 (普通文本)
case text(content: String)
/// 1 (详情)
case detail(id: Int, name: String)

init(from json: JSON) throws {
guard let messageType = json["messageType"].int else {
throw CommonAPIError.invalidResponsor
}
switch messageType {
case 0:
self = .text(content: json["content"].stringValue)
case 1:
self = .detail(id: json["detailID"].intValue, name: json["detailName"].stringValue)
default:
throw CommonAPIError.invalidResponsor
}
}

var displayText: String {
switch self {
case .text(let content):
return content
case .detail(_, let name):
return "详情-\(name)"
}
}
}
Xheldon
148 天前
@RayJiang9 好好好,学到了,decode json 必须字段一一对应让我一度以为 Swift 很难用。。。
RayJiang9
148 天前
@Xheldon #4 Codable 我不太喜欢用,相比之下还是习惯用 SwiftyJSON 配合脚本生成 Model ,Codable 搭配 @propertyWrapper 可以实现 json 不一一对应,可以看下这个库 BetterCodable
Xheldon
148 天前
@RayJiang9 好的,我去看看,感谢~
1OF7G
7 天前
很有帮助

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1123864

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX