基本的に、文字列を表示するときに書式設定するために、一部の領域に余分な空白を含む文字列に日付を記入した文字列があります。したがって、文字列は次のようになります
6:00 PM
6:00 PM 4:00 AM
6:00 PM 4:00 AM 12:00 PM
6:00 pm 4:00 AM 12:00 PM 1:00 AM
NSScanner を使用して @"M" で文字列を解析できると考えました。時間の間に 2 つのスペースがある場合もあれば、1 つのスペースがある場合もあるためです。
NSScanner *theScanner = [NSScanner scannerWithString:theString];
NSString *separatorString = @"M";
NSString *container;
NSMutableArray *array = [[NSMutableArray alloc] initWithCapacity:_lastIndexPath.row];
while ([theScanner isAtEnd] == NO) {
[theScanner scanUpToString:separatorString intoString:&container];
[array addObject:container];
[theScanner setScanLocation:[theScanner scanLocation] + 1];
}
問題は、コンテナ オブジェクトで M が取得されないことです。これは、コンテナ オブジェクトがスキャンされますが、セパレータ文字列が含まれていないためです。次のように追加する前に、新しい NSString を手動で作成する必要があります
[array addObject:[NSString stringWithFormat:%@M", container]];
または、このシナリオで NSScanner を使用するより良い方法はありますか? 私は以前にNSScannerを実際に使用したことがありません。ありがとう。