当我在 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'”值设置为“是(视为错误)引起的",从而导致所有自动构建失败。
我已通过将其添加到我的 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' 选项即可。