2016-04-12 90 views
0

如何顯示陣列數減去陣列數?我有兩個數組是這樣的:陣列數減去陣列數

var likedBy = [NSArray]() 
var dislikedBy = [NSArray]() 

,我試圖得到計數作爲UITextLabel一個字符串是這樣的:

imageCell.likeLabel.text = self.likedBy.count - self.dislikedBy.count 

,但我得到的錯誤:

No "-" candidates produce the expected contextual result type "String?"

任何建議?

+0

字符串(self.likedBy.count - self.dislikedBy.count) – ogres

+0

提示:計數是_NUMBER_文本是_String_。 – holex

+1

建議#1:*閱讀*錯誤信息。 - 建議#2:如果你遇到不理解的編譯器錯誤,*將表達式拆分成多個語句:'let diff = self.likedBy.count - self.dislikedBy.count; imageCell.likeLabel.text = diff'。你現在應該看到問題了! –

回答

3

你應該使用字符串插值\()因爲count屬性返回Int,你需要一個String設置text屬性:

imageCell.likeLabel.text = "\(self.likedBy.count - self.dislikedBy.count)" 
+0

謝謝!快速提問 - 在'cellForItemAtIndexPath'中 - indexPath.row和indexPath.item有什麼區別? –

+0

'item':標識集合視圖的一部分中的項目的索引號。 –

+0

瀏覽http://stackoverflow.com/a/14765781/2035845獲取更多關於indexpath.item和indexpath.row的信息! –

1

取代你行

imageCell.likeLabel.text = "\(self.likedBy.count - self.dislikedBy.count)" 
1

您可能還想寫NSArray上的一個擴展,用於提供元素數量差異,以便您的代碼更加清晰,並且職責位於正確的位置。如你所說,你的主要代碼流並不想處理兩個數組之間的差異,而是希望知道有多少人喜歡在減去不喜歡之後留下來。

extension NSArray { 
    func elementCountDiff(array: NSArray) -> Int { 
     return self.count - array.count 
    } 
} 

... 

imageCell.likeLabel.text = String(self.likedBy.elementCountDiff(self.dislikedBy))