【问题标题】:Perform NSRegularExpression action in a selected tableview cell在选定的表格视图单元格中执行 NSRegularExpression 操作
【发布时间】:2012-11-07 19:31:57
【问题描述】:

我想在选定的表格视图单元格中执行NSRegularExpression 操作。然而,问题是,它不是对单个选定项目执行操作,而是检查整个数组,然后在除网站之外的所有项目上将答案“是”置空(因为单独的“if”语句)。

代码如下:

NSArray *array = @"http://www.apple.com/, http://www.stackoverflow.com/, http://www.test.com/, This is text, 416-555-5555, 416-123-4567, This is also text.";
   //more code

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSIndexPath* indexPath = [tableView indexPathForCell:sideSwipeCell];

    NSError *error = NULL;

    NSUInteger index = [buttons indexOfObject:button];
    NSDictionary* buttonInfo = [buttonData objectAtIndex:index];

    NSString *data = [[array objectAtIndex:indexPath.row] objectForKey:@"redirect_url"];

    NSRegularExpression *naNum = [NSRegularExpression regularExpressionWithPattern:@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$" options:NSRegularExpressionCaseInsensitive error:&error];
    NSRange naNumMatch = [naNum rangeOfFirstMatchInString:data options:0 range:NSMakeRange(0, [data length])];

    if ([data rangeOfString:@"http://"].location != NSNotFound) {
        // do something.
    } else if ((!NSEqualRanges(naNumMatch, NSMakeRange(NSNotFound, 0)))) {
        // do something
    } else {
        // do something
    }
}

我该如何解决这个问题?提前致谢。

【问题讨论】:

    标签: iphone ios nsarray nsregularexpression


    【解决方案1】:

    为什么忽略提供的 indexPath 并创建一个新的?这几乎可以肯定你的问题。

    如果没有在这三种情况下添加一些日志消息并记录范围、匹配的内容和索引路径。

    【讨论】:

      猜你喜欢
      • 2015-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多