【问题标题】: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。您现在应该看到问题了!

标签: ios arrays swift


【解决方案1】:

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

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

【讨论】:

  • 谢谢!快速提问 - 在cellForItemAtIndexPath 中 - indexPath.row 和 indexPath.item 有什么区别?
  • item:标识集合视图部分中的项目的索引号。
  • 浏览 stackoverflow.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))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多