NSString*test=[NSString stringWithString:inputString];
NSScanner*scan;
BOOL pass= [scan scanUpToCharactersFromSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet] intoString:&test];
Последняя строка приводит к сбою приложения с плохим доступом. Имеет ли это какое-то отношение к символу адреса, &
? Я не понимаю, зачем ему нужен этот тип синтаксиса.NSScanner scanUpToCharactersFromSet дает БЕСПЛАТНЫЙ ДОСТУП
Я пытаюсь просто проверить с помощью BOOL, если inputString
содержит любые символы без буквенно-цифровых символов. Если это так, pass
будет ДА.
ОБНОВЛЕНИЕ: Я вижу, что я совсем не понимаю сканер. Я понимаю, этот вывод:
NSString*[email protected]"Hello"; // this should cause my BOOL to be NO since no characters are scanned
NSScanner*scanix=[NSScanner scannerWithString:test];
BOOL pass= [scanix scanUpToCharactersFromSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet] intoString:nil];
NSLog(@"pass is %i for %@",pass, test);
Результат в журнале: pass is 1 for Hello
То, что я хочу знать, если на самом деле тест строка содержит не буквенно-цифровые символы. Как я могу поставить такой тест на это?
Нет, результат должен быть 'YES'. ** ** - буквенно-цифровые символы в строке «Hello». – Mundi
Вы читали, прежде чем я удалил, извините; Я обновил свой вопрос с моей реальной целью. Обратите внимание, что я просматриваю инвертированный набор, поэтому вы ищете не-буквенно-цифровое. – johnbakers
Вы можете использовать 'setCharactersToBeSkipped:' 'NSScanner''. Установите это свойство в алфавитно-цифровой набор символов. – Mundi