在目标c中仅添加一次字符串

时间:2013-11-26 07:11:32

标签: ios iphone objective-c

我想在视图出现时只附加一次字符串。问题是,当我从上一个视图移回时,文本会被重复附加。因为我在viewWillAppear中保留了字符串追加代码。

这是代码,

if (!sharedController.perimeterFencesFreeOfHazard) {
    NSString *origText = _messageLabel.text;
    count++;
    _messageLabel.text = [origText stringByAppendingString:@"\n • Perimeter fences & signs"];
    //count++;
}

如何确保字符串只被追加一次?

2 个答案:

答案 0 :(得分:2)

所以你需要一个标志,告诉你是否为该视图添加了文本。

MyViewController.h:

@interface MyViewController : UIViewController {
    BOOL _textAdded;
}

@end

MyViewController.m:

@implementation MyViewController

- (void)viewWillAppear {
    if (!sharedController.perimeterFencesFreeOfHazard && !_textAdded) {
        NSString *origText = _messageLabel.text;
        count++;
        _messageLabel.text = [origText stringByAppendingString:@"\n • Perimeter fences & signs"];
        _textAdded = YES;
    }
    ...
}

@end

事实上,看起来你正在使用count实例变量走这条路,这也是一样好。

答案 1 :(得分:1)

将代码从viewWillAppear:移至viewDidLoad:。因为viewDidLoad:方法在创建视图时只调用一次。