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

Mal*_*loc 2 llvm ios xcode4.5

不久前,我使用 GCC 编译器开发了一个应用程序,现在我升级到使用 Apple LLVM 编译器 4.2,并收到许多此类错误:Cannot declare variable inside @interface or @protocol

这是一个例子:

@interface HomeController(PRIVATE)
NSMutableArray *array;
@end
Run Code Online (Sandbox Code Playgroud)

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

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

Dan*_*n F 5

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

@interface MyClass()
{
    NSArray *myArray;
}
@end
Run Code Online (Sandbox Code Playgroud)

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