NSString*test=[NSString stringWithString:inputString];
NSScanner*scan;
BOOL pass= [scan scanUpToCharactersFromSet:[[NSCharacterSet alphanumericCharacterSet] invertedSet] intoString:&test];
最後一行使應用程序崩潰而導致訪問不良。它與地址符號&
有什麼關係?無論如何,我不清楚爲什麼它需要這種類型的語法。NSScanner scanUpToCharactersFromSet給出BAD ACCESS
我想簡單地檢查我的布爾如果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
你可以使用'NSScanner'的'setCharactersToBeSkipped:'。將此屬性設置爲字母數字字符集。 – Mundi