.h文件中@interface之后的{}是什么意思?

时间:2017-07-14 20:55:56

标签: objective-c

例如,我正在查看CHMutableDictionary.h

@interface CHMutableDictionary : NSMutableDictionary {
    CFMutableDictionaryRef dictionary; // A Core Foundation dictionary.
}

- (id) initWithCapacity:(NSUInteger)numItems;

- (NSUInteger) count;
- (NSEnumerator*) keyEnumerator;
- (id) objectForKey:(id)aKey;
- (void) removeAllObjects;
- (void) removeObjectForKey:(id)aKey;
- (void) setObject:(id)anObject forKey:(id)aKey;

@end

大括号CFMutableDictionaryRef dictionary。但在Objective-C guide Properties Control Access to an Object’s Values中,它没有提及在接口中使用{}

@interface Person : NSObject

@property NSString *firstName;
@property NSString *lastName;

@end

所以我只是想知道{}文件接口中.h中定义的变量是什么意思。

1 个答案:

答案 0 :(得分:2)

在大括号内声明实例变量。

但是把它们放在.h文件中是不好的形式。实例变量应该是私有的,而不是公共的。所以他们不属于公共.h文件。

有很多旧的Objective-C代码并没有遵循这些更现代的惯例。不要使用那些过时的约定来编写新代码。

有关一些现代示例,请参阅https://stackoverflow.com/a/13263345/1226963