Добавление строки Objective-C вызывает исключение - PullRequest
0 голосов
/ 29 марта 2010

Следующий код вызывает у меня некоторые проблемы. Третья строка вызывает сбой программы ... это происходит не в первый раз, когда я прохожу, а как-то позже в программе. Если я закомментирую третью строку, программа будет работать гладко.

NSString *myRequestString = @"text";
int i = 1;
myRequestString = [myRequestString stringByAppendingString:[NSString stringWithFormat: @"t=%d", i]];

Этот код вызывает это исключение:

*** -[CFString release]: message sent to deallocated instance 0xb4c43fe0

С другой стороны, может кто-нибудь сказать мне, как объединять строки в target-c, как и в любом другом обычном языке ... Я не могу поверить, что нет оператора конкатенации.

Любая помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 29 марта 2010

Для этого вам нужно NSMutableString :

NSMutableString *myRequestString = [[NSMutableString alloc] initWithCapacity:20];
[myRequestString appendString:@"text"];
int i = 1;
myRequestString = [myRequestString appendFormat: @"t=%d", i];

Не забудьте: NSString является неизменным .

0 голосов
/ 29 марта 2010

Звучит так, как будто вы выпускаете myRequestString в какой-то момент без его сохранения, что неправильно в соответствии с правилами управления памятью .

И нет, оператор конкатенации отсутствует,В С тоже нет ни одного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...