当我在iOS7中运行我的应用程序时,我收到警告“'isa'已被弃用”,我不知道如何修复此警告消息。请任何一个帮助。
array->isa = _JKArrayClass;
答案 0 :(得分:17)
包括<objc/runtime.h>
。
使用array->isa = _JKArrayClass;
object_setClass(array, _JKArrayClass)
之类的所有内容
以及class = array.isa
与class = 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'选项。