Я работаю с NSScanner для анализа данных, которые разделены запятой и строкой. Это было довольно просто реализовать, но я столкнулся с очень простой проблемой. Я хотел бы просканировать следующую строку, даже если она пуста. Проблема, с которой я столкнулся сейчас, заключается в том, что если есть пустая строка, она пропустит ее и прочитает следующую строку. Тогда мой анализ отключен, потому что неправильные данные оказались в неправильном месте. Вот код, который у меня есть сейчас:
NSCharacterSet *setToIgnore = [NSCharacterSet characterSetWithCharactersInString:@",\r\n"];
[scanner setCharactersToBeSkipped:setToIgnore];
NSInteger levelID, campaignID;
NSString *title, *about, *gameBoard;
BOOL aTest = [scanner scanInteger:&levelID] && [scanner scanInteger:&campaignID];
aTest = [scanner scanUpToString:@"\r\n" intoString:&title];
aTest = [scanner scanUpToString:@"\r\n" intoString:&about];
aTest = [scanner scanUpToString:@"\r\n" intoString:&gameBoard];
Итак, данные отформатированы так:
INT, INT
строка
строка
строка
Иногда вторая строка (about) пуста, и NSScanner пропускает ее и считывает строку gameBoard в about. Как мне сказать NSScanner прочитать в следующей строке?