【问题标题】:Build error when using iOS6 If Statement in xCode 5 Project在 xCode 5 项目中使用 iOS6 If 语句时生成错误
【发布时间】:2014-01-21 01:10:36
【问题描述】:

我正在使用部署目标 6.1 和 SDK 7.0 在 XCode 5 中构建一个项目,但我在这一行遇到错误:

 if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {

错误提示 *Use of undeclared identifier 'NSFoundationVersionNumber_iOS_6_1*

【问题讨论】:

  • 是否需要包含 NSObjCRuntime.h
  • 我会在哪里添加这个?
  • 在引用 NSFoundationVersionNumber_iOS_6_1 的文件顶部
  • 我要写什么代码留置权,我是新手,所以希望能得到一些帮助
  • 你认为你为什么需要这行代码?有可能有更好的方法。

标签: ios objective-c xcode ios6 ios7


【解决方案1】:

您的代码应该可以在 iOS7 中运行。请再次检查您的 Base SDK 版本。

Project Target -->Build Settings -->Base SDk

它是 Foundation.framework NSObjCRuntime.h 类的一部分。所以请确保您在Project Target --&gt;Build Phases --&gt;Link Binary With Libraries 部分下有Foundation.framework

如果不可用,请单击 + 按钮并将 Foundation.framework 添加到您的项目中。

注意:

当您尝试在 Xcode 4.x 上运行为 iOS 7 Base SDK 构建的代码时,或者在 Xcode 5 中针对较旧的 Base SDK 进行编译时,可能会发生这种情况。

解决方案是使用宏定义未手动定义的内容。将此添加到每个抱怨的班级中,您应该会没事的。

#ifndef NSFoundationVersionNumber_iOS_6_1
#define NSFoundationVersionNumber_iOS_6_1 993.00
#endif

这告诉编译器如果值不存在就定义它,所以它没有理由抱怨。

【讨论】:

  • OP 声明 Base SDK 是 iOS 7。这些都不需要。
  • @rmaddy 感谢您指出我的错误。我修改了我的答案。一个好的编辑将不胜感激。
猜你喜欢
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-22
  • 2022-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多