Is it mandatory to enclose instance variables in braces? Or is it just convention?

For example:

#import <Foundation/Foundation.h>    

@interface Person : NSObject
{
    NSString *name;
    int age;
}
有帮助吗?

解决方案

Yes, the curly braces are required to declare instance variables. Curly braces right after an @interface or @implementation line mark instance variable declarations. If you omitted the braces, you would simply be declaring global variables.

其他提示

the curly braces and the enclosed block are used to declare the instance variables of an Objective-C class, and follow a @interface or @implementation declaration.

You can declare variables outside these blocks, but they will use raw C semantics.
For example, Objective-C has instance and class methods, but it doesn't have a clear concept of class variable.
You can still use class variables, with C semantics.

static NSMutableArray *myClassList;

@implementation Person
{
    // this block is actually optional
}

// instance methods
// ...

@end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top