NSString stringByAppendingString: рекурсивная длинная строка - PullRequest
1 голос
/ 05 июля 2011

У меня с тех пор систематическая проблема с NSStrings и добавлением их к другому. Я искал в сети, но не смог найти то, что меня удовлетворило.

У меня есть строка, объявленная как это в заголовке и правильно синхронизированная в реализации:

@property (nonatomic, retain) NSString *dataString;

Я обновляю каждые 200 мс данные. Я хочу поместить это в строку (NSData было бы более хорошим, я думаю) после старой рекурсивной. Строка должна расти каждые 200 мс.

 dataString = [dataString stringByAppendingString:superString];


 NSLog(@"%@",dataString);

Но мой код здесь ломается!

LOG DATA:

2011-07-05 12:40:54.039 Acceleration[1658:307] /AccelerationApp2011-07-05_12:40.txt
2011-07-05 12:40:56.825 Acceleration[1658:307] Acceleration:
 X-axis: -0.036224 
 Y-axis: -0.036224 
 Z-axis: -0.941833 
 Global Acc: 0.9 g 
(gdb) 

... тогда я получаю сигнал от программы: EXC_BAD_ACCESS

Проблема в том, что строка может быть слишком длинной?

Ответы [ 2 ]

7 голосов
/ 05 июля 2011

Вам необходимо сохранить возвращаемое значение из stringByAppending ... или присвоить его свойству:

self.dataString = [self.dataString stringByAppendingString:superString];
1 голос
/ 05 июля 2011

ты не сохранишь его. [dataString stringByAppendingString:superString]; возвращает автоматически освобожденную строку.

[dataString autorelease];
dataString = [[dataString stringByAppendingString:superString] retain];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...