【发布时间】:2013-11-09 11:01:43
【问题描述】:
当我在 iOS7 中运行我的应用程序时收到警告“'isa' 已弃用”,我不知道如何修复此警告消息。请任何人帮助。
array->isa = _JKArrayClass;
【问题讨论】:
-
我建议从你的项目中去掉 JSONKit。一方面,它与 64 位架构不兼容,因为使用了语言 hack。
当我在 iOS7 中运行我的应用程序时收到警告“'isa' 已弃用”,我不知道如何修复此警告消息。请任何人帮助。
array->isa = _JKArrayClass;
【问题讨论】:
包括<objc/runtime.h>。
将array->isa = _JKArrayClass; 之类的所有内容替换为object_setClass(array, _JKArrayClass)
以及class = array.isa 和class = object_getClass(array) 之类的所有内容
【讨论】:
我想我会为您的 Cocoapods 用户分享我的解决方案。 (如果您找到了更好的解决方案,请在 cmets 中告诉我)
我正在使用 Cocoapods,因此我不想修改我引入的库的源代码。问题是由 Cocoapods 将“直接使用 'isa'”值设置为“是(对待as error)”,从而导致所有自动构建失败。
我已通过将其添加到我的 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。你对此有什么想法吗?谢谢