深入了解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文档。
  • 增加您的图书馆的用户群。
  • 迁移您的旧代码。

如有任何疑问,请随时在下面的评论部分中提问。