как разбить строки в цели с - PullRequest
10 голосов
/ 23 февраля 2011

Как разбить строку в target-C?Я работаю над коротким приложением, которое содержит сборщик дат.Я отображаю дату, получаю ее из палитры и показываю через ярлык.

Мой главный вопрос заключается в том, как разделить дату на три отдельные строки?кто-нибудь имеет представление об этом?

Спасибо

Ответы [ 4 ]

19 голосов
/ 23 февраля 2011

Вы можете использовать -[NSString componentsSeparatedByString:] или NSScanner, чтобы разбить строку, или использовать NSCalendar, чтобы извлечь фрагменты даты, которую вы ' заинтересованы в.

9 голосов
/ 23 февраля 2011

Используйте что-то вроде [yourString componentsSeparatedByString:@"/"]. Вы получите NSArray разделенных строк.

2 голосов
/ 12 декабря 2011

Если вы можете отформатировать дату в определенный формат, используя NSDateFormatter, а затем преобразовать NSDate в NSString.Вы можете извлечь компоненты из строки даты с помощью componentSeparatedByString.

NSDate *myDate = datePicker.date;//if you are getting date from date picker

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"cccc, MMM d, hh:mm aa"];//you can use any date format also
NSString *myDateString = [dateFormat stringFromDate:myDate];

Используя этот метод, вы можете получить массив строк и использовать токенайзер строк в соответствии с вашим dateformat.for например "," tokenizer строк.

[myDateString componentsSeparatedByString:@","];
0 голосов
/ 19 июня 2015

Вы можете использовать следующий код для разделения даты на отдельные компоненты:

NSDate *inputDate = [NSDate date];  //assign the value selected from date picker 
NSCalendar* calendar = [NSCalendar currentCalendar];

unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |  NSDayCalendarUnit;
NSDateComponents* componentObj = [calendar components:unitFlags fromDate:inputDate];
NSInteger day = componentObj.day;
NSInteger month = componentObj.month;
NSInteger year = componentObj.year;
...