我有一个从一开始就构建的iOS应用程序,其中有一个错误。由于源程序是从模板开始构建的,它的appdelegate.h看起来像:
@interface myAppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
myViewController *viewController;
}
BOOL myBool; // intended to be globally accessible
NSString *myString; // intended to be globally accessible
@end
关于全局变量,我引用了许多其他.m源文件中的myBool和*myString。
在XCode 3.2.6以下,我不记得在编译时遇到过任何问题。
在3.2.6,编译时出现警告,指向appdelegate.h中的这些“全局”变量,称:“无法在@interface或@protocol内声明变量”。由于编译或应用程序运行时没有出现进一步的问题,不幸的是,我没有考虑这些警告。
现在,使用XCode 4.2,我无法编译这个源代码,因为以前的警告变成了构建错误。它们引用并指向不同.m文件中的每一行,其中引用了“全局变量”。
考虑到我仍然想将这些变量/引用作为全局变量/引用来访问,有没有一种简单的方法来纠正这个问题?
其他问题:当我评估到目前为止收到的答案时(感谢大家),另一个问题是:知道为什么XCode v3.2.6以下没有发出警告,如果这是我方的真正错误,只在3.2.6中发出警告吗?为什么代码仍然被编译并且可以毫无问题地运行?