NSString isEqualToString: не работает. Зачем? - PullRequest
1 голос
/ 27 августа 2010

Я создаю NSString с помощью

NSString *myString = [[NSString alloc] initWithBytes:someBuffer length:sizeof(someBuffer) encoding:NSASCIIStringEncoding];

Я использовал NSLog для вывода myString, и он отображает «Hello».

Если это так, то почему это не получается.1006 *

NSString *helloString = @"Hello"

BOOL check = [myString isEqualToString:helloString];

Ответы [ 2 ]

6 голосов
/ 27 августа 2010

Ваша переменная myString на самом деле является строкой NSString длиной 64;дополнительные символы, вероятно, не определены.Скорее всего, вы захотите сделать следующее:

NSString *myString = [[NSString alloc] initWithBytes:someBuffer length:strlen(someBuffer) encoding:NSASCIIStringEncoding];

Предполагается, что в вашем буфере существует завершающая нулем C-строка.

4 голосов
/ 27 августа 2010

Вероятно, есть некоторые завершающие символы, которые вы не видите при вызове NSLog (). Например: пробелы, переводы строки или даже символы \ 0.

Проверьте [myString length], чтобы увидеть, вернется ли он 5.

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