属性也声明为实例变量?

时间:2011-08-08 16:41:52

标签: objective-c

此代码有效:

    @interface StringStuff : NSObject {

    }
    @property (nonatomic, retain) NSString *String1;
    @property (nonatomic, retain) NSString *String2;

    - (NSString *) doSomethingWithStrings;

    @end

但我经常看到:

        @interface StringStuff : NSObject {
             NSString *String1;
             NSSTring *String2;    
        }
        @property (nonatomic, retain) NSString *String1;
        @property (nonatomic, retain) NSString *String2;

        - (NSString *) doSomethingWithStrings;

        @end

是否有理由通常将属性声明为实例变量?它只是被认为是好形式吗?

1 个答案:

答案 0 :(得分:6)

旧;它曾经是(并且仍然是32位Mac OS X目标代码),需要ivar声明。在iOS,模拟器和64位OS X上已不再适用。

请注意,@synthesize iVar = iVar_;通常会阻止在真正需要self.iVar的情况下进行意外直接访问。