iOS 7:'isa'已弃用

时间:2013-11-09 11:01:43

标签: ios7 xcode5 jsonkit

当我在iOS7中运行我的应用程序时,我收到警告“'isa'已被弃用”,我不知道如何修复此警告消息。请任何一个帮助。

array->isa      = _JKArrayClass;

2 个答案:

答案 0 :(得分:17)

包括<objc/runtime.h>

使用array->isa = _JKArrayClass;

替换object_setClass(array, _JKArrayClass)之类的所有内容

以及class = array.isaclass = object_getClass(array)

之类的所有内容

答案 1 :(得分:15)

我想我会为你分享我的解决方案Cocoapods的用户。 (如果您找到了更好的解决方案,请在评论中告诉我们)

我正在使用Cocoapods,因此我不想修改我所引入的库的源代码。问题是由Cocoapods设置“直接使用'isa'”值为“是”(处理为错误)“,从而导致所有自动构建失败。

我已将此问题添加到我的Podfile中解决了问题:

post_install do |installer_representation|
    installer_representation.project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['CLANG_WARN_DIRECT_OBJC_ISA_USAGE'] = 'YES'
        end
    end
end

这样直接使用'isa'就会显示为警告,但不会导致自动构建失败。

但是在arm64 iOS设备构建(使用Xcode 5.1.0)奇怪的是CLANG_WARN_DIRECT_OBJC_ISA_USAGE ='YES'选项将无法正确应用(视为错误)。 如果你需要构建,包括arm64,只需使用CLANG_WARN_DIRECT_OBJC_ISA_USAGE ='NO'选项。