1

因此,iOS 6 弃用了presentModalViewController:animated:and dismissModalViewControllerAnimated:,并将它们分别替换为presentViewController:animated:completion:and dismissViewControllerAnimated:completion:。我想我可以使用 find-replace 来更新我的应用程序,尽管使用这些present*方法会很尴尬,因为每次要呈现的控制器都不同。我知道我可以使用正则表达式来处理这种情况,但我对正则表达式感到不舒服,无法尝试将它与我的 1000+-files-big 应用程序一起使用。

所以我想知道:Xcode 是否有一些神奇的“更新不推荐使用的方法”命令或其他东西?我的意思是,我已经在上面描述了我的特殊情况,但总的来说,每个操作系统版本都会出现弃用。有没有比简单地使用查找替换更好的方法来更新应用程序?

4

2 回答 2

0

您可能对程序转换系统感兴趣。

这些是可以自动修改源代码的工具,使用模式导向的源到源转换(“如果你看到这个源级模式,用那个源级模式替换它”)对代码结构而不是文本进行操作。如果处理得当,这些转换可以是可靠且语义正确的,并且它们比导航和破坏纳米级实际树结构的低级程序代码更容易编写。

使用这些工具并非易事。这些工具必须知道如何将感兴趣的语言解析为编译器数据结构(例如,ObjectiveC),处理模式,并从修改后的结构重新生成可编译的源代码。即使使用基本的转换引擎,也需要有人为感兴趣的语言的方言仔细定义解析器(和反解析器!)。即使你有这样的解析器/反解析器,学习如何使用它也需要时间。如果您需要进行的更改是“常规的”(在程序转换意义上,而不是正则表达式意义上)并且广泛(就像您的那样),这是值得的。

我们的 DMS 软件再造工具包有一个 ObjectiveC 前端,并且可以进行这样的转换。

于 2012-12-18T01:17:07.167 回答
-1

不,没有这样的魔法

于 2012-12-17T22:35:26.760 回答