2016-05-13 29 views
1

讓我開始說我是iOS/Xcode編程的新手,所以我甚至不知道要問什麼。 我試圖添加一個靜態庫到應用程序,我最後崩潰了。 庫包中有一個.h文件和一個.a文件。 我在尋求一些關於如何着手解決問題的建議。 這裏的一些事實:NSMutableData錯誤

  • 的Xcode 7.3 - 薩爾瓦多隊長OS
  • 圖書館工作。我有一個演示應用程序,正在使用同一個庫,但沒有發生崩潰,我嘗試使用
  • 我沒有發現將演示應用程序與我的應用程序進行比較的顯着差異。我從頭開始創建(單個視圖 - 故事板),演示應用程序使用xib文件,我不知道它是如何開發的。 某些文件是相同的(即直接從演示應用程序複製)

  • 碰撞顯然發生在庫中,在所述內部呼叫的一個

  • 碰撞涉及NSMutableData類。這是錯誤:

    + [NSMutableData dataFromHexString:]:無法識別的選擇發送到類0x1a085fdb0

    ***終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因:「+ [NSMutableData dataFromHexString:]:無法識別選擇發送到類0x1a085fdb0'

    • 在應用程序的代碼(一個是工作,不工作的一個雙方)沒有直接轉診到類NSMutableData。在應用程序中定義的最接近的類是NSMutableArray,我可以看到它在兩個應用程序中都以相同的方式定義和使用。

這就是我不知道如何着手。 它必須是在應用程序中阻止庫工作的東西,因爲它與原始的演示代碼一起工作,但我現在還不知道它可能是什麼。 我試圖找出一些斷點,試圖找出問題,但庫編譯時沒有調試信息,因此只有庫中的彙編代碼由調試器顯示。 我正在尋找關於如何進行的任何線索。

感謝所有幫助 史蒂夫

+1

對於'NSMutableData',沒有'dataFromHexString:'這樣的方法。也許有些圖書館將它作爲一種分類方法加入。 – rmaddy

+0

正確,我注意到該方法不存在,但在工作應用程序中,我沒有找到任何方法添加到該類。 在我的應用程序中,我包含了工作應用程序的完全相同的文件。 是否有可能一些應用程序配置(info.plist或其他)可以做到這一點? – thefwguy

回答

0

發現問題。我在追鬼,配置丟失了兩個編譯標誌。 dataFromHexString方法在靜態庫中聲明,當然沒有關於這個的文檔。 我不得不添加兩個標誌來編譯代碼: -ObjC和-all_load 我的猜測(我還不十分清楚環境)是用那些標誌代碼能夠識別新的方法。