2

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

这是一个例子:

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

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

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

4

2 回答 2

5

如果您希望它是“私有的”,我通常会创建一个未命名的类别并在其中声明 ivars,如下所示:

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

我不确定它是否是您类别的命名部分,或者您缺少大括号这就是问题所在,但这对我有用

于 2013-04-30T14:21:34.520 回答
1

你可以这样做:

@interface HomeController (){
NSMutableArray *array;
}

那么这些变量是私有的......

于 2013-04-30T14:23:34.387 回答