XLForm 目标-C |未知的属性属性“可为空”

Posted

技术标签:

【中文标题】XLForm 目标-C |未知的属性属性“可为空”【英文标题】:XLForm Objective-C | Unknown property attribute 'nullable' 【发布时间】:2015-11-11 07:01:46 【问题描述】:

我将 cocoapods 安装到我现有的 xcode 应用程序中,并将 XLForm 添加到其中。我正在使用 Xcode 6.2 版,并且正在使用 objective-c 开发应用程序。然后当我在安装依赖项后尝试运行项目时,它在 "XLFormSectionDescriptor.h" 文件中给出以下错误。

我该如何解决这个问题?有什么想法吗?

提前致谢。

【问题讨论】:

【参考方案1】:

您应该更新到最新版本的 Xcode,截至本文发布时为 7.1.1。如果您有某些原因无法执行此操作(例如尚未准备好针对 ios 9 SDK 进行编译),则必须删除该代码中的 nonnull 属性。可能最简单的就是定义它了。

#define nonnull

您可能应该用检查编译器版本的#ifdef 包围它。比我更熟悉预处理器的人必须提供那段代码。

错误是由于引入了 Xcode 6.x 中包含的旧版本 clang 无法理解的属性引起的。

【讨论】:

但是我仍然可以在 Xcode 7.1.1 中编译 iOS 8.2 SDK 对吧? 除非您采取措施从当前安装迁移,否则您不会拥有 SDK。你可以谷歌搜索方法来做到这一点。您可以做的是将您的部署目标设置为 8.2(或更早版本)。请注意,iOS 9 SDK 存在错误,尤其是在旧 iOS 版本上运行时。您应该准备好彻底测试或采取措施针对 iOS 8 SDK 进行编译。

以上是关于XLForm 目标-C |未知的属性属性“可为空”的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 10.0 中启用了可为空的仅初始化引用属性

XmlSerializer 和可为空的属性

如果它为空或为空,如何从序列化中忽略可为空的属性?

退出构造函数时,不可为空的属性必须包含非空值。考虑将属性声明为可为空

Typescript 映射类型,其中仅保留可为空的属性并转换为字符串类型

使用 XmlSerializer 将空 xml 属性值反序列化为可为空的 int 属性