2013-05-17 31 views
1

可能是一個真正的新問題。我有一個叫routeOutLabelUILabel。我想簡化它的text屬性。如何爲UILabel的文本屬性製作替代名稱?

我的想法做這樣的:

@synthesize routeOutText = &routeOutLabel.text; 

,但它不工作。我怎麼能得到routeOutText指向routeOutLabel.text,所以要改變第二個,我只需要設置第一個?

+0

這聽起來像你有一個JAVA背景。使用Objective-C直接訪問屬性被認爲是常見的做法,例如, self.routeOutLabel.text = @「Awesome Text」; – Groot

回答

3

爲什麼? A UILabel也有其他屬性。沒有理由去做你正在問的東西。它會讓你的代碼更難以閱讀和維護。

不過話說回來,你可以在.m文件定義這樣的私人財產:

@interface WhateverClassThisIs() 

@property (nonatomic) NSString *labelText; 

@end 

@implementation WhateverClassThisIs 

- (void)setLabelText:(NSString *)text { 
    self.routeOutLabel.text = text; 
} 

- (NSString *)labelText { 
    return self.routeOutLabel.text; 
} 

@end 

現在,在你的代碼中做到這一點:

self.labelText = @"Hello"; 

代替:

self.routeOutLabel.text = @"Hello"; 

如果外部類需要此快捷方式,請將屬性聲明移至.h文件。