我从一开始就构建了一个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
Run Code Online (Sandbox Code Playgroud)
我从许多其他.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中的警告如果这是我的真正错误侧?为什么代码仍然编译,可以毫无问题地运行?