有没有一种简单的方法来替换Xcode中不推荐使用的方法调用?

有没有一种简单的方法来替换Xcode中不推荐使用的方法调用?,xcode,refactoring,automated-refactoring,Xcode,Refactoring,Automated Refactoring,因此,iOS 6不推荐presentModalViewController:animated:和DismissModalViewController:animated:,并分别用presentViewController:animated:completion:和dismissViewControllerAnimated:completion:替换它们。我想我可以使用find replace来更新我的应用程序,尽管使用present*方法会很尴尬,因为每次呈现的控制器都是不同的。我知道我可以用r

因此,iOS 6不推荐presentModalViewController:animated:和DismissModalViewController:animated:,并分别用presentViewController:animated:completion:和dismissViewControllerAnimated:completion:替换它们。我想我可以使用find replace来更新我的应用程序,尽管使用present*方法会很尴尬,因为每次呈现的控制器都是不同的。我知道我可以用regex处理这种情况,但是我觉得用regex来处理我的1000多个文件的大应用程序还不够舒服


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

没有,你可能对这样的魔法感兴趣

这些工具可以使用模式定向的源代码到源代码转换自动修改源代码。如果您看到此源代码级模式,请将其替换为对代码结构而不是文本进行操作的源代码级模式。如果做得好,这些转换可以是可靠的并且语义正确的,而且它们比导航和粉碎纳米级实际树结构的低级过程代码更容易编写

使用这些工具并不容易;这些工具必须知道如何将感兴趣的语言解析为编译器数据结构,例如Objective,处理模式,并从修改后的结构中重新生成可编译的源代码。即使使用基本的转换引擎,也需要有人仔细定义解析器和解析器!对于感兴趣的语言的方言。即使您有这样的解析器/分析器,也需要时间来学习如何使用这样的解析器。如果您需要进行的更改是程序转换意义上的常规更改,而不是regexp意义上的更改,并且像您看起来那样广泛,那么这是值得的


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

@downvoter我知道这不是一个非常有用的答案,但考虑到没有办法使用xcode,我觉得这是完全正确的。我在一篇较旧的帖子中找到了解决方案:。它使用Xcode的find/replace正则表达式。工作得很好!