NSString вопрос сравнения - PullRequest
       1

NSString вопрос сравнения

0 голосов
/ 19 октября 2010

Я пытаюсь проверить, имеет ли строка NSString буквы «PDF» в качестве первых 3 букв:

if ([[[profiles stringForKey:@"response"] characterAtIndex:0] isEqualToString:@"P"]) {
            //TODO
        }

Я начал с этого подхода, чтобы посмотреть, смогу ли я хотя бы сузить его до тех строк, которые начинаются с «P», но я получаю сообщение об ошибке, которое гласит: «Недопустимый тип получателя« unichar »» И «Приведение к указатель от целого числа разного размера "

Получаю ли я эти ошибки, потому что использую сравнение isEqualToString? Прикрепляет ли это конечный ноль к «P»? Я пытался использовать сравнение "==", но я также получал ошибку с этим методом.

Ответы [ 2 ]

4 голосов
/ 19 октября 2010
if ([profiles hasPrefix:@"PDF"]) {
  NSLog(@"my string starts with \"PDF\"");
}
2 голосов
/ 19 октября 2010

Вы хотите использовать метод substringToIndex вместо characterAtIndex.characterAtIndex возвращает unichar, который не является объектом target-c, на который можно отправить isEqualToString.

Вот кое-что, что сработало для меня:

NSString*   testString  = @"PDFDocument";
NSString*   subString   = [testString substringToIndex:3];

if ( [subString isEqualToString:@"PDF"] == YES )
{
    NSLog( @"same" );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...