草庐IT

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

coder 2023-09-04 原文

我有一个泛型类:

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

还有一个我尝试从 Storyboard 中实例化的:

class CandidatesTableViewController: 
   PaginatedTableViewController<Match, MatchPaginationDataSource>

我在 Storyboard Custom Class 下拉菜单中找不到 CandidatesTableViewController。如果我强制它然后在代码中转换我的 Controller ,应用程序会在运行时崩溃并提示我的 Controller (应该是 CandidatesTableViewController 实例)实际上是一个 UITableViewController 实例。

Unknown class _TtC21MyProjectName29CandidatesTableViewController in Interface Builder file. Could not cast value of type 'UITableViewController' (0x1040917f8) to 'MyProjectName.CandidatesTableViewController' (0x1013a9890).

在我的项目中,这个 Controller 嵌入到另一个 Controller 中,这就是我转换它的原因:

tableViewController = (segue.destinationViewController as! CandidatesTableViewController)

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

最佳答案

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

作为一种解决方案,我建议您使用聚合:不要让您的 View Controller 通用,而是将一些逻辑提取到另一个(通用)类并在您的 View Controller 中使用它。

关于ios - Xcode 7 Swift 2 无法实例化通用 UITableViewController 的 UIViewController 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34534854/

有关ios - Xcode 7 Swift 2 无法实例化通用 UITableViewController 的 UIViewController 子类的更多相关文章

  1. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  2. ruby-on-rails - 如何使用 Xcode 4.5.1 在 OSX Lion 10.8.2 上编译 EventMachine gem - 2

    我找遍了所有我能找到的地方,但似乎找不到解决这个问题的办法。我在Lion10.8.2上使用Xcode4.5.1,并尝试为Rails项目运行bundle,但它一直卡在这上面。我正在为Heroku使用Thingem。Bolanos@Jeremys-Mac-mini⦿-1.9.3fishfarm$sudogeminstalleventmachinePassword:Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingeventmachine:ERROR:Failedtobuildgemnativeextens

  3. ruby-on-rails - Rails 'service objects' 最佳实践 - 类方法或实例化 - 2

    我正在按照我一直在研究的研讨会实现“服务对象”,我正在构建一个redditAPI应用程序。我需要对象返回一些东西,所以我不能只执行初始化程序中的所有内容。我有这两个选择:选项1:类需要实例化classSubListFromUserdefuser_subscribed_subs(client)@client=client@subreddits=sort_subs_by_name(user_subs_from_reddit)endprivatedefsort_subs_by_name(subreddits)subreddits.sort_by{|sr|sr[:name].downcase}

  4. ruby - 开始使用 MacRuby 和 Xcode 4.2 - 2

    我最近想开始使用MacRuby。我已经安装了Xcode4.2和MacRuby,但显然我遗漏了一些东西。到目前为止,在我发现的每个教程中都说,我必须从Xcode模板中选择“MacRuby应用程序”……但是没有这样的条目可用。我试过0.10和几天前发布的每晚版本。我查看了MacRuby的安装位置,我找到了Xcode3.0的模板……我必须使用这些模板吗?如何将它们导入Xcode4.2?在开始之前,我还想知道,从MacRuby开始是否安全?乍一看,我认为"is",因为有新的MacRuby书籍可用——但MacRuby网站上似乎没有太多事件(去年3月的最后一篇博客文章?)……根据我的经验,这可能是

  5. ruby - 在 Xcode 运行脚本构建阶段使用 rvm 强制指定 Ruby - 2

    在Xcode之外,我使用特定版本的Ruby,使用RVM管理多个Ruby安装。Apple的命令行开发工具将Ruby安装在/usr/bin/ruby并且版本为1.8.7。我通过RVM使用1.9.3。有没有办法强制Xcode在运行其运行脚本构建阶段时使用我的1.9.3安装?我已经尝试将Shell路径设置为我的特定Ruby的完整路径,但这似乎没有什么不同,我的意思是我在1.9.3中安装的特定Gems不可用/在Xcode中运行时对脚本可见。如果我在命令行上通过xcodebuild运行我的项目,运行脚本阶段会使用我的特定Ruby,因为它是从我的shell环境中运行的(即使项目文件中的Shell路径

  6. ruby - 获取实例化类 ruby​​ 的文件目录 - 2

    我有一个gem,里面有这样的代码:defread(file)@file=File.newfile,"r"end现在的问题是,假设你有一个像这样的目录结构:app/main.rbapp/templates/example.txt和main.rb有如下代码:require'mygem'example=MyGem.read('templates/example.txt')它出现了FileNotFound:templates/example.txt。如果example.txt与main.rb在同一个目录中,它会工作,但如果它在一个目录中,则不会。为了解决这个问题,我在read()中添加了一个名

  7. ruby-on-rails - 是否有针对 Rails、Ruby、Erb 的 Xcode 语法着色?如果没有,我怎么能自己写一个? - 2

    Xcode的语法着色充其量只是很差,而textmate看起来不错,但我喜欢Xcode,因为我也用C++编程。我想将所有内容都放在一个地方并利用其他Xcode功能。有没有人已经这样做过或者有没有简单的方法来做到这一点? 最佳答案 你可以去Editor>SyntaxColoring>CheckHTMLanddoitagainforRuby 关于ruby-on-rails-是否有针对Rails、Ruby、Erb的Xcode语法着色?如果没有,我怎么能自己写一个?,我们在StackOverflo

  8. ruby-on-rails - 如何在不首先在 Ruby 中实例化的情况下获取所有子类的列表 - 2

    如果我有4个具有以下层次结构的类:classMainClass如何在不遍历和创建每个其他类的实例的情况下获得MainClass的子类列表?在新的IRBsession中,我可以进去说irb(main)>MainClass.descendants=>[]但是,如果我遍历并创建每个子类的实例,我将看到以下内容irb(main)>SubClassA.new=>#irb(main)>SubClassB.new=>#irb(main)>SubClassC.new=>#irb(main)>MainClass.descendants=>[SubClassA(...),SubClassB(...),Su

  9. ruby - 使用 RVM 的 Mac OS X Lion Xcode 问题 - 2

    我的Xcode4.1预览版5运行良好,但我决定通过应用商店升级到最终版xcode4.1。我先卸载了Xcode...sudo/Developer/Library/uninstall-devtools–mode=all然后通过应用商店安装Xcode并重新启动。我还完全删除了RVM但是...现在每当我尝试安装Ruby版本时都会失败。在错误文件中我得到这个:[2011-07-2718:29:25]./configure--prefix="/Users/holden/.rvm/usr"checkingforaBSD-compatibleinstall.../usr/bin/install-cch

  10. ruby - 是否可以在不调用初始化的情况下实例化 Ruby 类? - 2

    有时,当我编写单元测试时,我需要在不调用initialize方法的情况下实例化一个类。例如,当构造函数实例化其他类时,无论如何我都会用stub替换它们。例如:classSomeClassThatIWillTestdefinitialize@client=GoogleAnalyticsClient.new@cache=SuperAdvancedCacheSystem.newend#...end在测试中,我可能会将@client和@cache替换为stub,因此我宁愿从未调用构造函数。有什么黑魔法可以帮助我解决这个问题吗? 最佳答案 当

随机推荐