我们有一个方法,可以借助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;
}
我们对此行为感到困惑。任何人都知道可能出现的问题?