2014-06-18 25 views
0

我在我的代碼中將其更改爲descriptionLabel,它不是我認爲的保留關鍵字,但仍稱其爲descriptionLabel好得多。修復原因sigabort

編譯器不會糊塗,這確實是一個合理的解釋。

代碼現在:

- (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; 
} 
+3

什麼是「標題」?向我們展示代碼! – Shai

+0

我想你應該先嚐試一些其他的字符串;即'title.text = @「test」;'並且看看它是否會起作用。 – Unheilig

+0

這似乎是一個很好的解決方案,同時刪除該警告並且還防止異常: '的NSString * descriptiontext描述= [(的UILabel *)cell.descriptionLabel mutableCopy];' @Unheilig,問題不在於它不會顯示標籤中的文字,問題是(是)它引起警告,警告是不好的,所以在代碼功能之後,我試圖讓它們解決。解決這個問題似乎沒有效果,而是導致了一個異常。這個解決方案效果很好。 - JopieK 5分鐘前 – JopieK

回答

0

description是NSObject協議(必需)的方法。此方法返回描述接收器內容的字符串。

我想編譯器會混淆你指的是description(因爲點語法也可以用於沒有參數的方法)。

您的UILabel插座是否真的名爲「description」?那麼我建議你將它重命名爲「descriptionLabel」。

+0

我在代碼中將其更改爲descriptionLabel,它不是保留關鍵字我認爲,但仍然稱它爲descriptionLabel好得多。 – JopieK

1

不要叫什麼description。這是NSObject上的一個現有方法,它返回一個字符串。碰撞看起來就像你回來的那樣,因爲你要求一個字符串作爲text屬性。

您可能沒有找回合適的班級單元,或者您沒有正確實施說明,但很難從問題中得知。