2013-11-27 56 views
0

我正在優化iOS 7的舊應用程序,並且必須處理以前從未處理過的非ARC代碼。麻煩的是在應用程序內購買圖書館MKStoreKit。該應用程序正在使用它的舊版本和修改版本。我無法使用較新的版本,因爲無法訪問服務器。 的代碼行,這是造成錯誤是:「發送到解除分配的實例的消息」錯誤

[MKStoreManager sharedManager]; 

錯誤本身是:

-[MKStoreManager retain]: message sent to deallocated instance 0x145e6ba0 

我用NSZombie,這是我的了: enter image description here

所以,任何幫助將不勝感激。我已經花了三天時間,試圖解決這個問題。

UPDATE: MKStoreManager.m: http://pastebin.com/ZppTkxmN

MKStoreManager.h: http://pastebin.com/TJVM7UdN

行,導致錯誤: enter image description here

+0

當你打電話給sharedManager時,你會得到這個錯誤嗎?你有MKStoreKit的修改版本的源代碼嗎? 3天似乎足夠學習非ARC,你知道保留髮布的東西,對吧? –

+0

我已經用MKStoreManager代碼更新了這個問題。當然,我對非ARC有一個基本的瞭解,但看起來這是不夠的。 – etolstoy

+0

我建議從Breakpoint Navigator中添加Exception Breakpoint。它會告訴你哪一行引發異常。 sharedManager方法看起來像一個有效的方法。 –

回答

1

你爲什麼不下載的版本ARC MKStoreKit從這個鏈接,並取代您的項目中的新庫,玩得開心。

https://github.com/MugunthKumar/MKStoreKit

希望它幫助。

+0

正如我以前告訴過的,我無法使用庫的新版本,因爲它有太多的變化,並且服務器無法使用它。 – etolstoy

+0

@igrekde你可以做的是,在項目的構建階段中爲這些非ARC文件添加-fno-objc-arc標籤。它會工作:) –

+0

它不起作用,因爲該應用使用第三方服務器進行應用內購買。服務器代碼適用於舊版本的庫。 – etolstoy

相關問題