0

我有以下实现文件MyClass

BOOL myBool;

@implementation MyClass

// ...

- (void) someMethod {
    myBool = YES;
}

@end

似乎对于after的每个实例都myBool只会在. 但是,如果我这样定义,它对每个实例都有一个唯一的值:YESMyClasssomeMethodMyClassmyBoolMyClass

@interface MyClass ()
@property (nonatomic) BOOL myBool;
@end

以上两种“成员变量”语法有什么区别?

4

1 回答 1

4

不同之处在于,在第一种情况下,它不是成员变量,而是全局变量,因此它自然会在类的多个实例之间保持其值。

如果要在类实现文件中声明 ivar,可以执行以下操作:

@implementation MyClass{
   BOOL myBool;
}
...
于 2012-09-06T16:19:12.753 回答