UITableViewCell上的Swift tap识别器

时间:2014-12-25 21:49:32

标签: swift

我有一个表格视图,可以从社交网络API获取数据。单元格中有2个标签和一个imageView,它有一个自定义类

import UIKit

class resultsCellController: UITableViewCell {

@IBOutlet weak var resultImageView: UIImageView!

@IBOutlet weak var resultName: UILabel!

@IBOutlet weak var resultBioOrUsername: UILabel!
 }

当然还有其他功能,但它们并不重要。 我想做的是以下几点:

  1. 应用程序从api获取数据并加载表
  2. 当用户点击特定单元格时,我希望将其中一个标签的文本保存到服务器。

func tableView(tableView: UITableView, didDeselectRowAtIndexPath indexPath: NSIndexPath) { //Code }
但它似乎没有工作,因为它不能访问单元格本身,因为我必须将它放在tableView所在的类中,而不是单元格类。

2 个答案:

答案 0 :(得分:1)

到目前为止,您最好的选择是在需要整数时坚持Int,当您需要布尔值时,请使用Bool。不要开始猜测速度或内存使用情况。您应该担心数据类型大小的时间是在存储大量数据时,即使这样,只有在您编写了一些内容并且能够对其进行测试以验证它是一个问题之后才会查看它。 / p>

通过调整大小以优化CPU使用率很可能会适得其反。在64位CPU上,您可以发现使用32位整数会使性能变差,而不是更好。或者可能不是。但如果它更快,它将是微观优化。您还会发现自己更多地使用类型系统 - 许多标准的Swift函数需要Int s - 您将遍布整个地方以将非标准大小的类型嵌入其中。

如果您想快速制作代码,请关注两件事。

首先,确保您的算法在复杂性方面是有效的(例如,当它们可以提前计算它们时,它们不会在循环中不必要地重新计算值)。如果您在O(n)循环中意外调用O(n)计算,则Int32不会保存您。

其次,给编译器尽可能多的优化空间。处理简单数据类型时使用值类型(即结构)。支持静态多态(例如重载和泛型)而不是动态。并使用类型的意义,而不是你认为可能更快。

Bool实际上小于Int32(1个字节对4)。但这不是你应该使用它的原因 - 你应该使用它,因为它表示意图。将信号发送给编译器,并将其发送给您。您不能意外地将Bool误解为数字。慢速程序可能不好,但是行为不正确或崩溃的程序要差得多。

答案 1 :(得分:0)

Bool变量的大小是1个字节。 Int变量的大小是4个字节。如果你有数千个变量,你可以通过使用Bool来节省一些内存(通过使用位来节省更多内存)。可能两种类型都会在处理器上显示相同的性能。

我建议你使用更适合你的任务的类型。如果你需要简单的标志,Bool很好,没有必要使用Int。