2011-08-08 32 views
4

此代碼的工作:也聲明爲實例變量的屬性?

@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 

是否有屬性通常被聲明爲實例變量還有一個原因是什麼?它只是被認爲是好的形式?

回答

6

遺留;它曾經是(並且仍然在32位Mac OS X目標代碼上)需要伊娃報價。這在iOS,模擬器和64位OS X上不再是真實的。

請注意,@synthesize iVar = iVar_;常見於防止意外直接訪問,其中self.iVar確實是必需的。

相關問題