xcode swift for [[[view class] description]

时间:2014-09-03 06:16:59

标签: ios iphone xcode swift

我希望在 xcode swift 中获取uiview的课程描述,以获取tableview' s cellForRowAtIndexPath

中的以下代码
if([[[view class] description] isEqualToString:@"UITableViewIndex"]){
    ....
}

2 个答案:

答案 0 :(得分:9)

这是基于问题的swift中的直接翻译。

if NSStringFromClass(view.classForCoder) == "UITableViewIndex"
{

}

答案 1 :(得分:2)

我认为,isEqualToSTring不是您的最佳选择。我可以想到两个更好的选择:

if view.isKindOfClass(UITableViewIndex) {
    ...
}

或者,甚至更好:

if let tableView = view as? UITableViewIndex {
    ... //Here you can use a tableView instead of view.
}

字符串比较不是快速操作。 isKindOfClass / type casting应该更快。而且你不必担心字符串中的拼写错误。如果您想重构代码并重命名类,则无需在任何地方更改这些字符串。

更新:正如Nikolai Ruhe所说,UITableViewIndex是私有的(起初我认为它是您的自定义子类),因此在这种情况下不能使用此技术。请查看Allan的答案。