Справка NSMutableString Цель C - PullRequest
0 голосов
/ 04 апреля 2011

В настоящее время у меня есть следующий код:

-(void) inputNumber:(int)number {

    NSString *str;

    str = [NSString stringWithFormat:@"%d", number];
    [strVal appendString:str];
    txtShowNum.text = strVal;
}

Я уже определил NSMutableString * strVal;before в моем коде.

Когда вышеуказанная функция выполняется, поле остается пустым, но если бы мне пришлось использовать:

txtShowNum.text = str;

Я получаю значение, которое мне предназначено, но я, очевидно,нужно объединить значение.

Может кто-нибудь пролить свет на это.

Спасибо

Ответы [ 3 ]

0 голосов
/ 04 апреля 2011

Ваш strVal, скорее всего, nil, поэтому вы вызываете appendString: для nil, который по сути ничего не делает, а установка для текстового поля nil сотрет его содержимое.

0 голосов
/ 04 апреля 2011

Если вы только что объявили ее как переменную-член, убедитесь, что вы ее где-то инициализировали:

NSMutableString * strVal = @ "";

Если нет, вы просто вызываете метод для нулевого объекта.

0 голосов
/ 04 апреля 2011

Вы также должны выделить NSMutableString в своем коде где-то перед вызовом этого метода.

например. как это:

-(void) inputNumber:(int)number {
    if ( strVal == nil ) strVal = [[NSMutableString alloc] init];
    NSString *str = [NSString stringWithFormat:@"%d", number];
    [strVal appendString:str];
    txtShowNum.text = strVal;
}

Однако здесь есть некоторые проблемы с памятью. Вам лучше сделать strVal оставшейся собственностью, а затем сделать:

    if ( self.strVal == nil ) self.strVal = [NSMutableString string];
...