更改UILabel.text的字符串

al0*_*l03 1 objective-c uilabel nsobject ios

aClass.aString = @"A";
self.aLabel.text = aClass.aString;
Run Code Online (Sandbox Code Playgroud)

如果我将aClass.aString更改为"B",也希望self.aLabel.text自动更改为"B".

这个怎么运作?

我是否可以在aClass.aString和self.aLabel.text之间建立一个强大的链接?我知道在objective-c,delegateKVO中有一些方法可以做到这一点,但它有很多事要做,它有一些简单的方法吗?

tro*_*foe 12

你必须自己管理它.如果你看一下UILabel text属性的定义(链接),你会发现它复制了字符串内容,正是因为这个原因:

@property(nonatomic, copy) NSString *text
Run Code Online (Sandbox Code Playgroud)

您可以为aString属性编写自定义setter方法:

- (void)setAString:(NSString *)aString
{
    _aString = aString;
    self.aLabel.text = aString;
}
Run Code Online (Sandbox Code Playgroud)

(如果您遵循当前clang为您生成支持实例变量和访问器方法的趋势,那么您可能需要显式声明此特定的一个,即使用名为的实例变量_aString).