Как использовать NSRange или NSScanner в iOS

У меня есть строка вроде:

1 this is my first text 2 his is my second 3 this is my third 4 this is my forth etc etc..

Каждое предложение находится между цифрой characters like 1 2 3 4 etc

Когда я нажимаю на первое предложение, его нужно разобрать и скопировать в буфер обмена или что-то в этом роде. Как мы можем использовать NSScanner или NSRange для вычисления размера строки или идентификации строк между числовыми символами.

self.multiPageView.text = комбинированный; комбинированный текст содержит текст, как указано выше, поэтому, когда я нажимаю на первое предложение, ему нужно выбрать и показать UIAlertView, который соответствует тому, что нажатое предложение является первым предложением, как обнаружить предложение между числовыми символами, коснувшись этого предложения, как ibook. Я использую основной текст, чтобы показать этот тип текста.


person stackiphone    schedule 19.05.2012    source источник
comment
Я хотел бы прокомментировать, что было бы полезно получить лучшую поддержку от сообщества SO, чтобы вы взглянули на синтаксис Markdown, который используется SO для правильного форматирования ваших вопросов.   -  person GorillaPatch    schedule 19.05.2012


Ответы (2)


Ставь NSScanner лайк -

NSString *yourString = @"1 this is my first text 2 his is my second 3 this is my third 4 this is my forth";

NSScanner *scanner = [NSScanner scannerWithString:yourString];

[scanner scanUpToString:@"1" intoString:nil];
if (![scanner isAtEnd]) {
    [scanner scanUpToString:@"1" intoString:nil];
    NSCharacterSet *charset = [NSCharacterSet characterSetWithCharactersInString:@"2"];
    [scanner scanUpToCharactersFromSet:charset intoString:&yourString];
}
person rishi    schedule 19.05.2012
comment
у меня есть сомнения, я визуализирую этот текст через coretextr, так как я могу определить, что я коснулся первого предложения или второго предложения. Есть ли способ выделить или открыть всплывающее окно с предупреждением, которое включает сообщение о том, что это первое предложение? - person stackiphone; 19.05.2012
comment
вам нужно переформулировать вопрос с вашей реальной проблемой и чего вы пытаетесь достичь - person rishi; 19.05.2012
comment
так нельзя ли узнать, какое предложение прослушивается? - person stackiphone; 19.05.2012
comment
Я не буду этого говорить, вам нужно определить ваше требование? - person rishi; 19.05.2012

Попробуйте это, вы получите массив, в котором будут все разделенные строки. Вы должны заполнить набор цифрами, которые вы используете.

    NSString *str1 = @"1 this is my first text 2 his is my second 3 this is my third 4 this is my forth";
    NSMutableCharacterSet *set = [NSMutableCharacterSet controlCharacterSet];
    [set addCharactersInString:@"1"];
    [set addCharactersInString:@"2"];
    [set addCharactersInString:@"3"];
    [set addCharactersInString:@"4"];
    NSArray *arr = [str1 componentsSeparatedByCharactersInSet:set];
person Paresh Navadiya    schedule 19.05.2012
comment
haii,1 2 3 4 является динамическим, так как я могу написать этот код? фактический код self.multiPageView.text =combined; companied содержит эти тексты.combined является динамическим. - person stackiphone; 19.05.2012