所以我试图在我想在我的 2006 Macbook 上构建的项目中使用AFNetworking库来提供 REST 服务。Macbook 是第一代 2006 年 32 位酷睿双核 w/雪豹。
我对 Objective-C 开发还很陌生,我正在按照教程在这里开始使用 AFNetworking:https ://github.com/AFNetworking/AFNetworking/wiki/Getting-Started-with-AFNetworking
使用 xcode 4.2 我的问题是,当我创建一个新项目并尝试构建时,我立即得到:语义问题 - 合成属性 'window' 必须与兼容的 ivar 命名相同,或者必须明确命名 ivar。
我检查了我的新项目的构建设置,由于某种原因,当我的机器是 32 位时,xcode 默认假定 64 位英特尔架构?!奇怪的。我将它换成 32 位,这就是错误出现的地方。
所以我现在可以通过在 AppDelegate 中显式创建我自己的窗口实例变量来纠正这个语义问题:
NSWindow * _window;
我在构建 32 位 objc 时读到了这一点: 在我看到的许多公共 github 项目代码中,合成没有实例变量的属性似乎很常见(缺少 ivar 声明)。现在是每个人都在强迫我们使用 64 位,还是只是懒得创建实例变量?:(
所以我的问题是,它看起来像 AFNetworking 库是为 64 位 Intel 构建的,因为当我将 AFNetworking 添加到我的项目中时,我到处都会遇到相同的语义问题 ivar 错误。查看库代码,没有为任何属性在整个代码中声明的显式实例变量。
我在这里完全搞砸了吗?我可以通过为所有属性手动创建实例变量来解决这种情况,但这对于长期项目维护来说会很痛苦。
我想我希望这里有某种编译器标志,我可以添加它可以一次性解决这一切?但我猜我运气不好,现在是时候扔掉这台 Macbook 并买一台新的现代笔记本了。