深入了解Swiftify
复杂转换
正如我们前面提到的,Swiftify执行的转换不是对Objective-C语法的愚蠢搜索和替换操作,而是该工具更像是一个编译器,该编译器具有:
- 一次扫描一个字符。
- 通过标记扫描的字符,对代码执行词法分析 。
- 然后执行语法分析以确保从词法分析中产生的标记顺序正确。
可以产生期望结果的一组关键字的正确顺序称为语法。
然后, 语义分析会生成一种中间语言或结构,以便可以将其转换为等效的Swift。
这个复杂的过程为Swiftify提供了令人印象深刻的优势,即数据类型感知能力。
例如:
转换为:
如果Swiftify不知道i'
的数据类型,并且将加法转换为仅var g = i + f
,它将产生一个编译器错误,表明Binary operator '+' cannot be applied to operands of type 'Int' and 'Float'
;
您可以在此处探索免费的在线代码转换器。 仅此一项就可以向您展示该工具的真正智能程度。 再以下面的代码段为例,该代码段将持久性存储添加到NSPersistentStoreCoordinator中:
转换为:
在这里,您可以看到Swiftify能够try
包装该调用,因为此函数throws
,并且,此外,它还可以推断persistentStoreCoordinator
是一个可选属性,并为该属性添加了可选的展开功能 !
您还可以在这里找到许多其他这样的示例。
包起来
我希望这可以帮助您了解为什么我将Swiftify用于所有转换。 从Xcode扩展到离线转换器,Swiftify可以帮助您!
使用Swiftify,您还可以:
- 生成Swift文档。
- 增加您的图书馆的用户群。
- 迁移您的旧代码。
如有任何疑问,请随时在下面的评论部分中提问。