Swift语言中的UITableView这个类中有一个方法叫做dequeueReusableCellWithIdentifier,我看文档中对其的描述是Returns a reusable table-view cell object located by its identifier,但是其定义函数是:func dequeueReusableCellWithIdentifier(identifier: String) -> AnyObject?,说明其返回的是一个AnyObject的optional值
let cell = self.tableView.dequeueReusableCellWithIdentifier("todoCell") as! UITableViewCell
这行代码我如果没理解错的话,是调用了父类中的一个tableView的self.tableView.dequeueReusableCellWithIdentifier方法,返回了一个AnyObject可选值,然后将其向下转型至UITableViewCell,从而让cell这个常量的类型是UITableViewCell而不是一个AnyObject?
请问我的理解正确吗?然后如果这个函数返回的始终是AnyObject?型的话,是不是每次使用的时候都需要向下转型?
另外关于利用as向下转型,是不是其就是把一个变量的类型进行转化?
本来就是以前的编译器
所以很多东西其实还是Objc的
返回是AnyObject也就是任何实例都行 无论什么类型
只要你运行时能跑通 编译时才不管
其实并不能说类型转换 只能说 手工指定类型