因此,iOS 6废弃了presentModalViewController:animated:和dismissModalViewControllerAnimated:,并分别用presentViewController:animated:completion:和dismissViewControllerAnimated:completion:取而代之。我想我可以使用find-replace来更新我的应用程序,尽管使用present*方法会很笨拙,因为每次呈现的控制器都是不同的。我知道我可以用正则表达式来处理这种情况,但我不太习惯使用正则表达式,不能在我的1000多个大文件的应用程序中使用它。
所以我想知道: Xcode是不是有一些神奇的“更新弃用的方法”命令或者什么?我的意思是,我已经在上面描述了我的特定情况,但通常情况下,每个操作系统版本都会出现弃用。有没有比简单地使用find-replace更好的更新应用程序的方法呢?
发布于 2012-12-18 09:17:07
您可能会对Program Transformation Systems感兴趣。
这些工具可以自动修改源代码,使用操作在代码结构而不是文本上的面向模式的源代码到源代码的转换(“如果您看到这个源代码级别的模式,请将其替换为源代码级别的模式”)。如果处理得当,这些转换可以是可靠的,并且在语义上是正确的,而且它们比导航和粉碎纳米级实际树结构的低级过程代码更容易编写。
使用这样的工具并不容易;这样的工具必须知道如何将感兴趣的语言解析成编译器数据结构(例如,ObjectiveC),处理模式,并从修改后的结构重新生成可编译的源代码。即使使用基本的转换引擎,也需要有人仔细定义解析器(和解析器!)对于感兴趣的语言的方言。即使你有这样的解析器/解析器,学习如何使用这样的解析器也需要时间。如果您需要进行的更改是“常规的”(在程序转换的意义上,而不是regexp意义上的)和广泛的(就像您的那样),那么这是值得的。
我们的DMS软件再工程工具包有一个ObjectiveC前端,可以执行这样的转换。
发布于 2012-12-18 06:35:27
不,没有那样的魔法
https://stackoverflow.com/questions/13923353
复制相似问题