当前位置: 首页 > 面试题库 >

Xcode 7 Swift 2无法实例化通用UITableViewController的UIViewController子类

令狐昌胤
2023-03-14
问题内容

我有一个通用类:

class PaginatedTableViewController
  <GenericElement, Source: PaginationDataSource 
     where Source.PaginatedGenericElement == GenericElement>:
  UITableViewController

我尝试从情节提要中实例化的另一个:

class CandidatesTableViewController: 
   PaginatedTableViewController<Match, MatchPaginationDataSource>

CandidatesTableViewController在情节提要中的“自定义类”下拉菜单中找不到。如果我强行使用它,然后将我的控制器转换为代码,则应用程序在运行时崩溃,抱怨我的控制器(应该是CandidatesTableViewController实例)实际上是一个UITableViewController实例。

接口生成器文件中的未知类_TtC21MyProjectName29CandidatesTableViewController。无法将类型’UITableViewController’(0x1040917f8)的值强制转换为’MyProjectName.CandidatesTableViewController’(0x1013a9890)。

在我的项目中,此控制器嵌入到另一个控制器中,这就是我强制转换的原因:

tableViewController = (segue.destinationViewController as! CandidatesTableViewController)

有谁知道如何解决这个问题?


问题答案:

不幸的是,通用Swift类对于Objective-C代码不可见,并且在Interface
Builder中(在情节提要和Xibs中)也不受支持。我发现这两点密切相关。

作为一种解决方案,我建议您使用聚合:不要使您的视图控制器具有通用性,而是将某些逻辑提取到另一个(泛型)类中并在视图控制器内部使用它。



 类似资料:
  • 问题内容: 当我尝试运行此代码时: 我收到此错误: 我不明白为什么我无法实例化课程…在我看来似乎是对的… 问题答案: 是一个接口,因此您无法直接实例化它。您可以实例化一个具体的子类,例如:

  • 当我试图运行我的脚本时,我收到以下错误

  • 这是我的黄瓜基类。 在运行这个基类之后,我看到下面的异常。

  • 我试图使用Postgis 2.2和Postgreql 9.5与JPA,Postgis 9.5方言。我已经在pom.xml的要求,按这里http://www.hibernatespatial.org/documentation/documentation/和类型导入正确,但是当我试图运行程序使用几何类型我得到这个错误: 我显然遗漏了一些配置,有人能指出是什么吗?

  • 我在MapFragment的布局文件中出现了这个错误 我试过了 > 安装Google Play服务,但仍有错误 - com.google.android.gms.maps.MapFragment(开放类,显示异常,清除缓存) 提示:在自定义视图中使用view.isinEditMode()跳过代码或在IDE中显示示例数据。 如果这是一个意外错误,您也可以尝试构建项目,然后手动刷新布局。 异常详细信息

  • 我正在将一个Java EE应用程序部署到Bluemix,当第一个请求到达时,我得到了这个错误: 2015-05-20T23:11:58.51+0200[app/0]OUT[INFO]FFDC1015I:已创建FFDC事件:“java.util.ServiceConfigurationError:javax.servlet.ServletContainerInitializer:Provider o