Interface Builder文件中的未知类Xcode 8.3.1 Swift 3.1(使用泛型类对TableViewController进行子类化)

时间:2017-04-13 23:11:18

标签: swift uitableview generics interface-builder xcode8

我似乎找到了另一种情况,导致Interface Builder文件中着名的" 未知类。"

我尝试使用人们在其他Q / A中发布的有关此错误的所有建议来修复此问题,并且没有一个有效。

我尽可能地删除了代码以隔离问题。这是:

导致错误的代码:

第1课:

import UIKit

class TableViewControllerSubclass<T:Any>:UITableViewController{

}

第2课:

import UIKit

class TableViewControllerSubclassChild:TableViewControllerSubclass<Int>{

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

Main StoryBoard有一个继承自TableViewControllerSubclassChild的UITableViewController。这是一个屏幕截图:

enter image description here

当我按原样运行项目时,我在控制台中获得以下输出:

2017-04-13 15:50:30.226 TableViewControllerBug[6087:165667] Unknown class _TtC22TableViewControllerBug32TableViewControllerSubclassChild in Interface Builder file.

并且断点viewDidLoad永远不会被击中。

现在,如果在两个类中删除泛型的使用并运行项目,则控制台没有输出,并且viewDidLoad处的断点被命中。

不会导致错误的代码

NewClass 1:

import UIKit

class TableViewControllerSubclass:UITableViewController{

}

NewClass 2:

import UIKit

class TableViewControllerSubclassChild:TableViewControllerSubclass{

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

以下是code

的项目

我的问题:

  1. 这是Xcode / Interface构建器的错误吗?或问题是否源于非法使用仿制药?

  2. 如果这是非法使用仿制药,在这种情况下如何正确使用仿制药?

  3. 如果这是一个错误,有没有人知道一个解决方法?

  4. 对问题的任何见解都会有所帮助!谢谢!

0 个答案:

没有答案