当我在iOS7上运行我的应用程序时,我收到了一个警告:“'isa'已过时”,我不知道如何修复此警告消息。请有人帮助解决。
array->isa = _JKArrayClass;
包含<objc/runtime.h>
。
将所有类似于array->isa = _JKArrayClass;
的内容替换为object_setClass(array, _JKArrayClass)
。
将所有类似于class = array.isa
的内容替换为class = object_getClass(array)
。
我想与使用Cocoapods的读者分享我的解决方案。(如果您找到更好的解决方案,请在评论中告诉我)
我正在使用Cocoapods,因此不希望修改我引入的库的源代码。问题是Cocoapods将“直接使用'isa'”值设置为“Yes(视为错误)”,从而导致所有自动构建失败。
我通过将以下内容添加到我的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'选项。
LoadError - no such file to load...
我正在使用Xcode 5.1和i0S 7.1。你有任何想法吗?谢谢。 - Lisarien