相关疑难解决方法(0)

无法在@interface或@protocol中声明变量

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

iphone ios

21
推荐指数
2
解决办法
3万
查看次数

标签 统计

ios ×1

iphone ×1