2010-12-02 85 views
0

查看下面的代碼;@property在目標c中的用途c

@interface testViewController : UIViewController 
{ 
    int age; 
    UIPopoverController *popoverController; 
} 
@property (nonatomic , retain) int age; 
@property (nonatomic , retain) UIPopoverController *popoverController; 

@end 

@property (nonatomic , retain) int age定義int age;@synthesizing他們implemetation給出了自動生成的實現getter和setter的getter和setter。

我不明白的是關於第二個。第二個屬性(@property (nonatomic , retain) UIPopoverController *popoverController;)生成什麼方法? (:

我已經看到很多使用@property與除了INT對象,字符串等方案;

可以任何指導我這個正確的教程

在此先感謝(也可以。有人告訴我如何接受計算器的答案)。

回答

4

是很困難的建議更好的東西,然後official documentation(至少你應該閱讀它)開始。

@property (nonatomic , retain) int age; 

難道真的要申報年齡伊娃的setter/getter方法,但該行會給編譯器錯誤,因爲你不能財產申報與保留非對象類型屬性(參見文檔的更多詳細信息)

@property (nonatomic , retain) UIPopoverController *popoverController; 

此行不從第一個太大的差別 - 這也宣告setter和getter方法popoverController伊娃,並自動合成二傳手將保留popoverController它得到

0

@synthesize總是創建的訪問者。你的情況:

- (void) setPopoverController:(UIPopoverController *)value; 
- (UIPopoverController *) popoverController; 
1

如果你有這樣的:

@property (nonatomic , retain) UIPopoverController *popoverController; 

由@synthesize生成的方法將是這樣的:

-(UIPopoverController*) popoverController 
{ 
    return popoverController; 
} 

-(void) setPopoverController: (UIPopoverController*) newValue 
{ 
    [newValue retain]; 
    [popoverController release]; 
    popoverController = newValue; 
}