UITableView *tableView = (id)[self.view viewWithTag:1]; //why id is used here?
[tableView registerClass:[BIDNameAndColorCell class] forCellReuseIdentifier:CellTableIdentifier];
这是“开始 iOS 6 开发”一书中的一段代码,第 8 章,第 245 页。
我想知道为什么这里需要“id”?
最佳答案
id
不应该在那里。应该是:
UITableView *tableView = (UITableView *)[self.view viewWithTag:1];
括号中的部分称为“类型转换”。这是必需的,因为 viewWithTag:
方法返回一个 UIView
引用,但您希望将它分配给一个 UITableView
变量。强制转换告诉编译器你知道得更多并且返回的 View 确实是一个 TableView 。如果没有强制转换,编译器将提示分配无效。
在这里也可以使用 id
,因为 id
是一个通用类型,可以表示任何对象类型。
关于ios - 以下代码是什么意思?为什么这里使用 "id"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21584159/