无法在@interface或@protocol中声明变量:如何处理

时间:2013-04-30 14:17:42

标签: ios xcode4.5 llvm

前段时间,我开发了一个带GCC编译器的应用程序,现在我升级为使用Apple LLVM编译器4.2,并收到很多类型的错误:Cannot declare variable inside @interface or @protocol

以下是一个例子:

@interface HomeController(PRIVATE)
NSMutableArray *array;
@end

我知道我不能在类别中声明ivars,但如果我将它们更改为属性,那就没有意义了,因为有些ivars引用了extern类。

您通常如何处理这类问题?提前完成。

2 个答案:

答案 0 :(得分:3)

如果你想让它变成“私人”,我通常会创建一个未命名的类别并在那里声明ivars:

@interface MyClass()
{
    NSArray *myArray;
}
@end

我不确定它是你的类别的命名部分,还是你错过了问题的大括号,但这对我有用

答案 1 :(得分:1)

你可以这样做:

@interface HomeController (){
NSMutableArray *array;
}

然后这些变量是私有的...