【问题标题】:xcode swift for [[[view class] description][[[查看类]描述]的xcode swift
【发布时间】:2014-09-03 06:16:59
【问题描述】:

我想在 xcode swift 中获取 uiview 的类描述,以获取 tableview 的cellForRowAtIndexPath

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

【问题讨论】:

    标签: ios iphone xcode swift


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

      或者,甚至更好:

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

      字符串比较不是一个快速的操作。 isKindOfClass / 类型转换应该更快。而且您不必担心字符串中的拼写错误。而且您不必到处更改这些字符串,以防您想重构代码并重命名您的类。

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

      【讨论】:

      • UITableViewIndex 是私有的。
      • @NikolaiRuhe,是的,事实证明,你是对的。我认为UITableViewIndex 是OP 的自定义UITableView 子类。
      • 这种技术在 OP 的情况下不适用,但我会留下答案,因为它可能对某人有用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 2022-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      相关资源
      最近更新 更多