Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从UITableViewCell访问属性/值?_Ios_Swift_Uitableview_Reflection_Mirror - Fatal编程技术网

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通用。