数组计数减去数组计数

Posted

技术标签:

【中文标题】数组计数减去数组计数【英文标题】:Array count minus array count 【发布时间】:2016-04-12 08:34:36 【问题描述】:

如何显示?我有两个这样的数组:

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

我正在尝试将计数作为 UITextLabel 上的字符串,如下所示:

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

但我得到错误:

没有“-”候选产生预期的上下文结果类型 “字符串?”

有什么建议吗?

【问题讨论】:

字符串(self.likedBy.count - self.dislikedBy.count) 提示:计数是一个数字,文本是一个字符串 建议#1:阅读错误信息。 – 建议 #2:如果您遇到不理解的编译器错误,请将表达式拆分 为多个语句:let diff = self.likedBy.count - self.dislikedBy.count; imageCell.likeLabel.text = diff。您现在应该看到问题了! 【参考方案1】:

您应该对\() 使用字符串插值,因为count 属性返回Int,并且您需要String 来设置text 属性:

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

【讨论】:

谢谢!快速提问 - 在cellForItemAtIndexPath 中 - indexPath.row 和 indexPath.item 有什么区别? item:标识集合视图部分中的项目的索引号。 浏览 ***.com/a/14765781/2035845 以获取有关 indexpath.item 与 indexpath.row 的更多信息!!【参考方案2】:

换行

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

【讨论】:

【参考方案3】:

您可能还想在 NSArray 上编写一个扩展来提供元素计数差异,这样您的代码就更简洁了,并且职责位于正确的位置。例如,您的主要代码流对计算两个数组计数之间的差异不感兴趣,它想知道在减去不喜欢之后还剩下多少喜欢。

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


...

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

【讨论】:

以上是关于数组计数减去数组计数的主要内容,如果未能解决你的问题,请参考以下文章

计数排序

算法-排序-计数排序

排序算法八:计数排序(Counting Sort)

非比较排序--基数排序实现给字符串数组排序

计数排序vs基数排序vs桶排序

试图让 numberOfRowsInSection 计数等于 Swift 中另一个文件的数组计数