JSONKIT中的isa廢棄兼容
BUG描述:Direct access to objective-c's isa is deprecated in favor of object_setClass() and object_getClass()
處理方法:在target的Build Settings裏面,將Build ActiveArchitecture Only改成YES
處理結果:成功運行
其他方法:
1.更改代碼
將 array->isa =_JKArrayClass;
替換爲 object_setClass(array,_JKArrayClass);
將 dictionary->isa =_JKDictionaryClass;
替換爲 object_setClass(dictionary,_JKDictionaryClass);
2.網上其他描述
Xcode升級4.6引用靜態庫.a報錯 ld: file... not contain a(n) armv7s slice:xxx.afor architecture armv7s
由於iPhone 5的A6處理器採用新的Armv7s的架構,XCode4.6在新建Project的時默認使用了該架構,此時編譯含有第三方靜態庫時,會提示“ld: file … not containa(n) armv7s slice: xxx.a for architecture armv7s”錯誤。
所以,在第三方類庫未SDK來兼容Armv7s架構更新前,我們可以採取下面的辦法解決問題:
方法一 . 升級涉及到的.a文件兼容Armv7s
方法二 . 在target的Build Settings裏面,將Build ActiveArchitecture Only改成YES
方法三 . 在XCode 4.5的BuildSetting中將Architectures的$(ARCHS_STANDARD_32_BIT)修改爲armv7
所以如果是開源庫,直接把源代碼包含進項目最好,這樣就不會出現這樣的問題。