как разбить строки в objective c

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

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

спасибо

4 ответов


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


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


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

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];

вы можете получить массив строк с помощью этого метода, и вы можете использовать строку tokenizer в соответствии с вашим dateformat.например", " строка tokenizer.

[myDateString componentsSeparatedByString:@","];

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

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;