我在App Store上被拒绝在我的应用中使用私有实例变量。我应该使用的ivars绝对不能在我的代码中访问,但我使用的是来自第三方的一个或两个静态库。我如何测试这些实际上是否真的是罪犯?
更新
Apple指责我(和第三方库)在UITouch类中使用私有实例变量,包括
答案 0 :(得分:10)
我对检测问题一无所知,但最近我们遇到了这个问题;在我们的例子中,它是由Three20库引起的。如果您正在使用它,请参阅http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0/2375e7a158ee9d1b以获取讨论/可能的解决方案。
答案 1 :(得分:5)
您可以使用nm
来扫描哪个库使用了相关的ivar
。
% nm static_lib.a | grep name_of_ivar
如果你得到一行,我认为使用大写U
,名称ivar
你可能有疑问。
答案 2 :(得分:1)
我正在使用一个或两个静态库 来自第三方
联系第三方,请求解释,他们编写代码,他们必须知道那里有什么。他们可能有一个论坛或评论部分,其他用户可能已经表达过这些问题,您可以寻找答案和替代方案。
答案 3 :(得分:0)
对于拥有许多第三方库的用户,可以在项目路径中以这种方式检查项目,例如,如果要查找GraphicsService
:
$ find . |grep "\\.a" | xargs grep GraphicsService