2 UTF8Строка соединения строк - PullRequest
0 голосов
/ 25 февраля 2010

У меня есть несколько кодов, прочитавших результаты запроса из sqlite:

   while (sqlite3_step(statement) == SQLITE_ROW) {

      char *rowData = (char *)sqlite3_column_text(statement,0);


      NSString *fieldValue = [[NSString alloc]   initWithUTF8String :  rowData ];
      char  *rowData1 = (char *)sqlite3_column_text(statement,1);
      NSString *fieldValue1 = [[NSString alloc]   initWithUTF8String:rowData1];


      [fieldValue stringByAppendingString : fieldValue1];



      [fieldValue release];

Я заметил, что строка кода:

[fieldValue stringByAppendingString: fieldValue1];

не имеет функции, fieldValue1 не добавлено в filedValue.

Например, fieldValue это 'aaa' fieldValue1 равно 'bbb'

[fieldValue stringByAppendingString: fieldValue1] должно возвращать 'aaabbb'

но возвращает 'aaa', похоже, что fieldValue1 не добавлено в fieldValue

Приветствую любой комментарий.

Спасибо

InterDev

Ответы [ 2 ]

0 голосов
/ 25 февраля 2010

[fieldValue stringByAppendingString: fieldValue1] просто вернет новый объект NSString с объединенной строкой. Однако вы не присваиваете возвращаемое значение.

Попробуйте это:

NSMutableString *fieldValue = [[NSMutableString alloc]   initWithUTF8String :  rowData ];
char  *rowData1 = (char *)sqlite3_column_text(statement,1);
NSString *fieldValue1 = [[NSString alloc]   initWithUTF8String:rowData1];

[fieldValue appendString : fieldValue1];
0 голосов
/ 25 февраля 2010

-stringByAppendingString добавляет строку к цели, а возвращает результат. Вы должны написать

NSString *newString = [fieldValue stringByAppendingString : fieldValue1];

Если вы хотите получить новую строку «на месте», вы должны использовать NSMutableString и его метод -appendString.

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