2016-03-15 34 views
0

與Apple的Objective-C教程給出的類擴展有點混淆。據說類可能擁有像我可以寫同一類擴展中的私有屬性以及私有變量嗎?

@interface SomeClass() 

@property NSString* privateProperty 

@end 

其私有財產,而我可能所謂的自定義實例變量添加到類擴展像

@interface SomeClass() 
{ 
    NSString* instanceVar 
} 
@end 

我被教程暗示一起加入他們在同一類擴展像

@interface SomeClass() 

@property NSString* privateProperty 

{ 
    NSString* instanceVar 
} 

@end 

這導致Xcode編譯錯誤。我誤解了教程嗎?

+0

@ Daij-Djan您的評論沒有意義。這正是應該在SO上面的問題。那麼如果語法問題不是特定於類擴展的呢。 OP正在詢問關於Objective-C編程語言的清晰編程問題。 – rmaddy

+0

拋開引發貪睡的元討論,在實踐中,@ property屬性聲明可以被視爲替代,是一個花括號實例變量聲明的超集。如果你想學習語言而不是歷史,請使用'@property ivar'。可以把它看作是實例var(稱爲'_ivar')的單行聲明,可以像'instance.ivar'一樣使用的getter,以及可以像'instance.ivar = <某些類型的值一樣使用的setter >' – danh

回答

0

反之亦然。變量屬於接口之後。

@interface SomeClass() { 
    NSString* instanceVar 
} 

@property NSString* privateProperty 

@end 
相關問題