[__NSCFConstantString substringWithRange:]:范围{0,1}超出范围;字符串长度0

时间:2016-12-27 19:07:21

标签: ios objective-c substring

我们有一个方法,可以借助substringWithRange方法计算字符串中的子字符串。 startIndex始终为0,子字符串的长度永远不会超过字符串长度。即便如此,我们在生产中看到[__NSCFConstantString substringWithRange:]例外。下面是计算子字符串的代码块。

- (void)setItemTitle:(NSString *)title color:(UIColor *)color {
    self.titleLabel.text = title;

    NSUInteger placeholderTextLength = MIN(2,title.length);
    NSRange range = NSMakeRange(0, placeholderTextLength);
    self.placeholderLabel.text = [[title substringWithRange:range] capitalizedString];
    self.placeholderLabel.backgroundColor = color;
}

tableView: cellForRowAtIndexPath tableView委托方法调用此方法。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    Item *item = [self itemForIndexPath:indexPath];

    COSItemTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:self.defaultItemCellIdentifier forIndexPath:indexPath];
    [cell setItemTitle:item.title color:[UIColor whiteColor]];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

    return cell;
}

我们对此行为感到困惑。任何人都知道可能出现的问题?

0 个答案:

没有答案