Ios 如何从UITableViewCell访问属性/值?
我想从Ios 如何从UITableViewCell访问属性/值?,ios,swift,uitableview,reflection,mirror,Ios,Swift,Uitableview,Reflection,Mirror,我想从UITableViewCell访问我的视图对象,但我不能。我无法强制转换单元格对象,因为我只有字符串UITableViewCell。例如“ClientTableViewCell” 如何在不强制转换的情况下访问单元中的视图和对象? 我试图做到以下几点: let cell = (val as AnyObject).dequeueReusableCell(withIdentifier: "ClientTableViewCell") as! UITableViewCell 我可以得到一个像这样的
UITableViewCell
访问我的视图对象,但我不能。我无法强制转换单元格对象,因为我只有字符串UITableViewCell
。例如“ClientTableViewCell”
如何在不强制转换的情况下访问单元中的视图和对象?
我试图做到以下几点:
let cell = (val as AnyObject).dequeueReusableCell(withIdentifier: "ClientTableViewCell") as! UITableViewCell
我可以得到一个像这样的手机,但是我够不到里面的东西。我试过像这样的镜面反射:
let mirror = Mirror(reflecting: cell)
但子标签和值是可选的
guard let cell: ClientTableViewCell = tableView.dequeueReusableCell(withIdentifier: String(describing: ClientTableViewCell.self), for: indexPath) as? ClientTableViewCell else { return UITableViewCell() }
试试这个你需要弄清楚“访问我的视图对象”是什么意思。。。当您想要显示表格时,您是否在谈论设置属性/值?或者您正在尝试从已显示的单元格中获取属性/值?您没有访问tableView的权限吗?它应该是
tableView.dequeueReusableCell(标识符为:“ClientTableViewCell”,for:indexPath)吗?ClientTableViewCell
@rhpekarek我不想强制转换到ClientTableViewCell,我只有“ClientTableViewCell”作为字符串。因此,我将从服务中以字符串的形式获取它,并且我需要使它对所有UITableViewCell通用。UserTableViewCell也可以用作字符串,而不是ClientTableViewCell。你似乎让自己的生活变得很艰难。您还可以使用一个大的switch语句,根据您拥有的字符串值将单元格转换为正确的类型。Swift没有强大的反射功能,您也不能拥有编译时不知道的新单元格类型。或者,由于您的单元格继承自NSObject
,因此您可以使用value(forKey:)
访问单元格的属性,而无需将对象强制转换为特定的单元格子类。请注意,您的单元格属性需要声明为@Objc
我不想强制转换为ClientTableViewCell,我只有“ClientTableViewCell”作为字符串。因此,我将从服务中以字符串的形式获取它,并且我需要使它对所有UITableViewCell通用。