-2

当我使用 iOS 5.0 在较旧的 xCode 上运行我的 iOS 6 项目时。它在执行项目时发出警告和火灾异常。

Property 'window' requires method 'window' to be defined - use @synthesize , @dynamic or provide a method implementation

它背后的科学是什么?为什么我需要在 5.0 中显式添加 @synthesize。虽然它在 iOS 6 中运行良好。

4

1 回答 1

4

这与 iOS 6 或 iOS 5 无关。这与 Xcode 中使用的编译器版本有关。最新版本的 Xcode 中使用的最新版本的编译器支持旧版本的 Objective-C 编译器中没有的许多新功能。其中一项功能不再需要明确的@synthesize声明。一旦你利用了这些新特性,你就不能使用旧版本的编译器来编译你的代码。

所以现在问题变成了——你为什么要在旧版本的 Xcode 中构建这个项目?你的目标是什么?为什么不使用最新的 Xcode,只需将项目的 Deployment Target 更改为 iOS 5.0 并将 Base SDK 保留为“最新”。

于 2012-12-15T16:44:24.000 回答