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
處理結(jié)果:成功運(yùn)行
其他方法:
1.更改代碼
將 ????array->isa??????=_JKArrayClass;
替換為 ?object_setClass(array,_JKArrayClass);
將 ????dictionary->isa??????=_JKDictionaryClass;
替換為 ?object_setClass(dictionary,_JKDictionaryClass);
object->isa 替換為?object_getClass(object)
keyObject->isa 替換為 object_getClass(keyObject)
(id)keys[idx]->isa 替換為?object_getClass((id)keys[idx])
2.網(wǎng)上其他描述
Xcode升級(jí)4.6引用靜態(tài)庫.a報(bào)錯(cuò) ld: file... not contain a(n) armv7s slice:xxx.afor architecture armv7s
由于iPhone 5的A6處理器采用新的Armv7s的架構(gòu)棵红,XCode4.6在新建Project的時(shí)默認(rèn)使用了該架構(gòu)凉夯,此時(shí)編譯含有第三方靜態(tài)庫時(shí),會(huì)提示“l(fā)d: file … not containa(n) armv7s slice: xxx.a for architecture armv7s”錯(cuò)誤烘贴。
所以,在第三方類庫未SDK來兼容Armv7s架構(gòu)更新前罗洗,我們可以采取下面的辦法解決問題:
方法一 . ??升級(jí)涉及到的.a文件兼容Armv7s
方法二 . ??在target的Build Settings里面戚宦,將Build ActiveArchitecture Only改成YES
方法三 . ??在XCode 4.5的BuildSetting中將Architectures的$(ARCHS_STANDARD_32_BIT)修改為armv7
所以如果是開源庫,直接把源代碼包含進(jìn)項(xiàng)目最好犹芹,這樣就不會(huì)出現(xiàn)這樣的問題崎页。