我在我的代码中将它更改为descriptionLabel,我认为它不是一个保留的关键字,但仍然称之为descriptionLabel要好得多。
编译器不会混淆,这确实是一个合乎逻辑的解释。
代码现在是:
- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath;
{
RhythmCell *cell = (RhythmCell *)[cv dequeueReusableCellWithReuseIdentifier:@"RhythmCell" forIndexPath:indexPath];
UILabel *title = [[UILabel alloc]initWithFrame:CGRectMake(5, 20, cell.bounds.size.width-10, cell.bounds.size.height+150)];
title.font = [UIFont systemFontOfSize:15];
title.tag = indexPath.row;
title.numberOfLines = 2;
title.textAlignment = NSTextAlignmentCenter;
title.text = cell.descriptionLabel.text;
[cell.contentView addSubview:title];
return cell;
}
答案 0 :(得分:1)
不要打电话description
。这是NSObject上的现有方法,它返回一个字符串。崩溃看起来像是你要回来的,因为你要求一个字符串表示text
属性。
你可能没有找回正确班级的单元格,或者你没有正确地实现描述,但很难从这个问题中得知。
答案 1 :(得分:0)
description
是来自NSObject协议的方法(必需)。此方法返回一个描述接收者内容的字符串。
我想编译器很困惑你指的是description
(因为点语法也可以用于不带参数的方法)。
你的UILabel插座真的命名为#34;描述"?然后我建议你把它重命名为" descriptionLabel"。