Xcode — finding dead methods in a project

2019-04-28 08:37发布

I am curious if there are any tools that provide partial solutions for this. It is a tricky problem because of performSelector . . . but a tool ought to at least be able to come up with candidates, making the human's job easier.

2条回答
你好瞎i
2楼-- · 2019-04-28 09:37

Given the very verbose but descriptive method names often chosen in Objective-C programs, I find that doing a textual Find In Project is usually sufficient. I will usually just use the first part of a method name so as to avoid having to match method arguments. This will match normal method calls and use of @selector and NSSelectorFromString.

Of course, this won't work for very common method names or if you need the rest of the method name to disambiguate between many similar methods, but I find that to be a rare occurrence.

查看更多
我想做一个坏孩纸
3楼-- · 2019-04-28 09:40

Using static analysis, it is impossible to detect functions/methods that are defined but not used due to dynamic nature of Objective-C. The only reasonable solution is to run a coverage using GCov or similar tool. Even then, you will have to make your program do everything possible in order to make sure that you do not strip out some feature that was just not used during testing.

Also, this script has some interesting thoughts on this.

查看更多
登录 后发表回答