2011-12-31 149 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

這是在構建方案中啓用殭屍警告時發生的無害警告。你可以忽略它。