2013-03-11 30 views
0

此問題來自我詢問的上一個問題。我有一些幫助調試,但現在我已經在Xcode的控制檯出現此錯誤:錯誤:發送到釋放實例的消息在

[CFURL absoluteURL]: message sent to deallocated instance 0x949dde0 

我已經通過所有的文件做了搜索的absoluteURL一個實例,但它只是似乎導致我一些ASIHttp文件,因爲我一直在使用該lib。

我使用Twitter的驗證代碼示例,它帶有一些OAuth的圖書館,我有一種感覺,有可能是用下面的代碼有問題:

NSString * authorizationHeader = OAuthorizationHeader([NSURL URLWithString:@"https://api.twitter.com/oauth/request_token"], 
                method, 
                bodyData, 
                [GSTwitterSignedRequest consumerKey], 
                [GSTwitterSignedRequest consumerSecret], 
                _authToken, 
                _authTokenSecret); 

我只是不完全理解如何跟蹤這一點。提前致謝。

+0

我的「發送到釋放實例的消息」的經驗是,它是一個紅色的鯡魚 - 問題可能在其他地方。 – 2013-03-11 15:07:31

+1

*發送到釋放實例的消息*不是紅鯡魚,它是問題的根源。根本的問題是,某些事情 - 在這種情況下是CFURL--正在被過早釋放。 – bbum 2013-03-11 15:19:01

+0

我不知道這可能是什麼,它是如此令人沮喪。我希望這些消息更有幫助。有沒有人知道在問題根源所在的實際代碼中追蹤的簡單方法? – 2013-03-11 15:23:50

回答

2

啓用殭屍並在啓用殭屍的樂器中的分配工具下運行您的應用。還打開「軌道引用計數」和「僅跟蹤實時分配」(名稱的近似值 - 不在我面前;分配工具中有兩個複選框)。

當應用程序遇到消息發送到解除分配的實例錯誤時,您應該能夠看到該對象上的所有保留/釋放,更重要的是,確切地說,它在何處分配。

某處存在過早發佈或過度發佈的URL。


見 「找植物大戰殭屍」 中的Instruments documentation

+0

啊,很酷,好吧,我會給這個鏡頭,看看它是否有助於我追蹤它。 – 2013-03-11 15:24:40

+0

只要啓用AUtomatic Reference Counting,ASIHTTP就會出現如此多的錯誤。啓用此功能後,我無法構建項目。 – 2013-03-11 15:26:33

+0

不是ARC--而是儀器中的引用計數跟蹤器。在長時間運行中,轉換爲ARC是一個好主意(請注意,您可以將源文件轉換爲ARC並將ASIHTTP保留爲非ARC,但與此崩潰無關)。 http://developer.apple.com/library/mac/#documentation/developertools/Conceptual/InstrumentsUserGuide/MemoryManagementforYouriOSApp/MemoryManagementforYouriOSApp.html – bbum 2013-03-11 15:52:56

相關問題