2011-12-31 181 views
9

我试图在谷歌搜索,并试图找出这意味着什么字面上没有结果。我的控制台登录:Obscure NSZombie控制台日志

objc[17048]: Class _NSZombie_GEOLatLng is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 
objc[17048]: Class _NSZombie_GEOLatLng is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 
objc[17048]: Class _NSZombie_GEOLocation is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 
objc[17048]: Class _NSZombie_GEOLocation is implemented in both ?? and ??. One of the two will be used. Which one is undefined. 

没有人见过这一点,或有任何知道这意味着什么,是什么原因引起的,如果这是一个问题吗?

+1

您是否有任何方法具有文本GEOLatLng的子字符串?如果有,分享您的相关代码?如果您使用它进行测试,请尝试在没有NSZombieEnabled的情况下进行测试。 – Krishnan 2011-12-31 07:30:34

回答

5

我见过它。具体来说,在OS X上 - 但原因应该是一样的。 GEOLocation(以及其他)是在加载到过程中的两个图像中定义的。

如果这是一个你写的类,这个类的符号是在多个目标文件中定义的(可能是一个链接器错误,尽管...),在链接库,加载包或者某些组合中 - 动态加载。

如果它不是您写的(或合成的)类,请向该类的创建者提出错误。

也可能该类是在您的应用中定义的,也是在链接库中定义的。在这种情况下,您需要更改班级的名称。

这绝对是一个问题。该类(具有该名称)正在被加载到objc运行时两次,并且不能保证从objc使用平面名称空间创建实例时将返回哪个实现。

在这种情况下,该类存在于系统框架中,因此...将它发送给bug记者 - 它值得快速修复。

+0

GEOLocation和GEOLatLng不在我定义的任何类中。它看起来不像他们在我使用的任何外部软件包(SBJson和ASIHTTP)。这是否意味着它必须是链接器错误?乍看之下,它看起来不像链接中有任何问题。你对我应该看的地方有什么建议吗? – Mason 2011-12-31 18:59:49

+0

@梅森是的。最后,我说他们是由系统框架定义/使用的。你应该向Apple提交一个bug。让他们知道你链接的库,产生这个错误的os版本,以及任何其他需要重现它的步骤。 – justin 2011-12-31 19:14:40

0

我有这个晦涩的消息,并注意到一个NIB已从项目中删除,但代码仍在使用它。您可能需要检查是否有任何资源已从捆绑中删除,但仍在使用中。

2

这是在构建方案中启用僵尸警告时发生的无害警告。你可以忽略它。