Подстрока NSString не сравнится - PullRequest
0 голосов
/ 14 октября 2011

Мое сравнение строк продолжает возвращать false, и я не понимаю, почему.Даже мой nslog говорит, что значение верное.Знаете ли вы, почему мое сравнение продолжает возвращать false, даже если строки кажутся одинаковыми?Если я шаг за шагом, тип программы показывает SV в качестве значения.Я убедился, что в этой строке нет пробелов.Мы получаем первые два символа этого: SV2B799E5B-4306-4965-B5DD-944D3970E6B6

NSString *fPath = [path stringByAppendingPathComponent:[directoryContent objectAtIndex:x]];
    NSString *fName = [directoryContent objectAtIndex:x];
    NSString *type =  [fName substringToIndex:2];

    NSLog(@"TYPE: %@",type);

    if ([type caseInsensitiveCompare:@"SV"])
    {
        NSData *file = [[NSData alloc] initWithContentsOfFile:fPath];

        if (file)
        {
            [[WebService sharedWebService]saveVolunteer:nil :YES :[directoryContent  objectAtIndex:x] :file];
            [file release];
        }
    }

Ответы [ 3 ]

4 голосов
/ 14 октября 2011

[NSString -caseInsensitiveCompare:] не возвращает BOOL, возвращается NSComparisonResult.Это будет 0, если строки равны (без учета регистра), поэтому вы видите этот результат.проверьте, если оно == NSOrderedSame.

2 голосов
/ 14 октября 2011

Метод, который вы вызываете, возвращает NSComparisonResult, а не логическое значение.Так получилось, что значение NSComparisonResult равно 0, что интерпретируется как ложное.

0 голосов
/ 14 октября 2011

caseInsensitiveCompare: возвращает NSComparisonResult.Попробуйте [type caseInsensitiveCompare: @ "SV"] == NSOrderedSame

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