带有 Swift 5.0 编译器的 Xcode 10.2 - 协议继承问题

2023-12-31

当前的 Xcode 版本 (10.2) 存在一个大问题。

有一个BasicViewController具有以下签名的类:

class BasicViewController: UIViewController, UITableViewDataSource, UITableViewDelegate

然后我们还有另一个类ExampleViewController: BasicViewController其中有一些额外的逻辑。

现在是棘手的部分......

我们在不同的模拟器和设备上构建并运行该应用程序,一切正常。然后我们归档应用程序,然后突然didSelectRow不再被解雇了。项目的深度清理和清理使我们能够重现问题,而无需再次存档。

我想不出有什么情况会发生这种情况。情况变得更糟,因为我发现了更多类似的问题UITableViewDelegate仅当运行存档的应用程序时,才不会在子类中调用方法。是否是存档和提交应用程序期间的某些优化存在问题?

我确认我们设置了dataSource and delegate桌子上没有手势识别器。相同的逻辑在第二次/第三次运行应用程序后运行良好,但在深度清理项目后第一次失败。

我们做了一个测试并设置了UITableViewDataSource and UITableViewDelegate在儿童班级中,然后每次都按预期工作。看来继承协议效果不太好。如果我们将协议保留在父类中,并将它们添加到子类中,则说明子类中的协议是多余的。

有没有人经历过类似的事情?欢迎任何建议。


您可能会遇到https://bugs.swift.org/browse/SR-10257 https://bugs.swift.org/browse/SR-10257在 Swift 5.0 编译器中。如果您至少有三个文件,就会发生这种情况:

  1. BasicViewController.swift
  2. SomeOtherFile.swift
  3. ExampleViewController.swift

If SomeOtherFile.swift拨打任何电话AnyObject-键入的值,您正在编译wholemodule模式,并且文件按上述顺序传递给编译器(带有SomeOtherFile.swift在两者的中间),那么编译器似乎无法正确推断@objc- 实施的能力func tableView(_:, didSelectRowAt:)。您可以通过显式标记它来解决它@objc目前。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 Swift 5.0 编译器的 Xcode 10.2 - 协议继承问题 的相关文章

  • Swift 中的 preg_match 等效项

    我尝试将 PHP 函数转换为 Swift 该函数用于根据 my 正则表达式将字符串格式化为另一个字符串 这就是我在 PHP 中所做的 preg match P 0 9 Y 0 9 M 0 9 D T 0 9 H 0 9 M 0 9 0 9
  • 应用程序终止和设备重启后 PushKit 通知未到达

    借助 PushKit 我的 iOS 应用程序即使已关闭也能成功接收 VoIP 推送通知 失败时只有一个条件 如果我通过标准任务切换器刷出 终止 我的应用程序并重新启动我的设备 起初 我在重新启动设备后就遇到了这个问题 如这个问题所述 排除启
  • 如何在 ios 应用程序中将 .svg url 显示为图像

    我从服务器获取 svg 网址 如何在我的应用程序中将其显示为图像 我尝试在 UIWebView 中显示它 但无法调整内容图像的大小 我正在使用这个代码 let request NSURLRequest NSURLRequest url UR
  • 两个滚动视图同时工作,一键触摸

    我正在其中开发应用程序 我必须一键同时处理两个滚动视图 这意味着如果我同时滚动一个滚动视图 另一个滚动视图必须随之滚动 如果这是可能的 那么如何才能做到呢 在包含两个滚动视图的视图控制器中实现 UIScrollViewDelegate 协议
  • iOS 9 + Xcode 7 的 Segue 上的应用程序导致整个设备崩溃

    更新 我已经在这一年中使用了我的一个 DTS 目前与 Apple 支持工程师合作 根据他的建议 我还为此创建了一个错误报告 随着时间的推移 我将更新此线程 希望能产生最终的解决方案 不知何故 我找到了一种方法来创建一个可以真正重新启动模拟器
  • Facebook 登录 - 如果存在用户帐户(并且未安装应用程序)登录失败

    我刚刚在测试我的应用程序时发现了这个问题 它真的开始让我烦恼 那么环境是这样的 没有安装 Facebook 应用程序 用户登录 iOS 系统帐户 在设置 gt Facebook 下 当我的应用程序第一次尝试对用户进行身份验证时 它会提供这面
  • 获取 NSLayoutConstraints 关联视图

    我试图循环遍历视图约束 我向 view1 添加了 顶部 尾部 前导和高度约束 top trailing 和leading 是主ViewControllers 视图 如果我循环查看 view1 的约束 我只会看到高度约束 for constr
  • 如何在 iOS 中将 URL 添加到 Safari 的阅读列表?

    在我的 UIWebView 中 我想添加一个选项来将当前页面添加到 Safari 的阅读列表中 我知道这个功能的存在 因为 GMail 在长按链接时提供了它 但我找不到任何有关要使用的 URL 方案的信息 可能重复 如何从 iOS 以编程方
  • 如何设置 AWS Appsync 请求超时限制 || AWSAppSync 客户端不提供回调

    我正在使用 AWS Appsync 来开发当前的应用程序 并面临一个严重的问题 即每当我在 Appsync 客户端中触发查询时 当互联网连接速度较慢时 请求永远不会以回调结束 我在互联网上查了一下 关于这个主题的信息来源有限 而且发现这个问
  • iOS:自动调整大小不适用于 UIImageView

    我正在制作一个非常简单的应用程序来学习 Objective C 和 Xcode 该应用程序有一个 UIButton 和一个 UIImageView 当用户点击按钮时 图像从右到左以对角线运动向下移动 当它到达屏幕中的某个点时 它会重新生成以
  • 如何取消 Alamofire.upload

    我正在通过以下方式将图像上传到服务器上Alamofire upload作为多部分数据 不像Alamofire request它没有回来Request对象 我通常用它来取消请求 但是能够取消上传这样的消耗性请求是非常合理的 阿拉莫菲尔有哪些选
  • 捕获 SwiftUI 中的错误

    我在某些视图中有一个按钮 它调用 ViewModel 中可能引发错误的函数 Button action do try self taskViewModel createInstance name self name catch Databa
  • iPad 上的 Cordova 锁定方向失败

    我正在使用 cordova 3 5 0 0 2 6 最后一个稳定版本 我在锁定 iPad 设备的方向时遇到问题 在 iPhone 上它可以正常工作 但在 iPad 上方向未锁定 我想锁定整个应用程序而不仅仅是页面 这是我当前的 config
  • 某些网站如何在 iOS Safari 中内嵌播放视频?

    非常令人难以置信 因为我认为所有视频都可以在常规野生动物园中扩展为全屏播放 例如检查一下 https entertainment theonion com the onion reviews rogue one 1819596116 htt
  • iOS 图表错误:Thread1:EXC_BAD_ACCESS(代码=2,地址=0x2a0c220)

    因此 我正在遵循 AppCoda 上的 iOS Charts 教程 我完美地遵循了它 然后当我遇到问题时 我还复制了代码以使其完全匹配 问题是 当我尝试创建饼图然后运行它时 我收到错误 线程1 EXC BAD ACCESS 代码 2 地址
  • iOS 13:MPMediaPickerController - 内部错误/找不到请求的应用程序扩展

    看来一般MPMediaPicker在 ios13 ipad air 2 iphone SE 上不再工作 从那里复制的示例 1 1 没有显示媒体选择器https developer apple com documentation mediap
  • 从 UITableViewCell 隐藏删除按钮

    当我的表视图处于编辑模式时 会出现红色 按钮 当用户点击其中之一时 会出现 删除 按钮 当用户点击 删除 时 我首先检查一些内容 部分在线 可能不允许此删除 当不允许删除该单元格时 如何以动画方式隐藏 删除 按钮并让红色 按钮再次变成 所以
  • 如何以编程方式伪造 UIButton 的触摸事件?

    我正在编写一些单元测试 并且由于这个特定应用程序的性质 重要的是我要达到尽可能高的水平UI链尽可能 因此 我想做的是以编程方式触发按钮按下 就好像用户按下了按钮一样GUI 是的 是的 我could只需致电IBAction选择器 但同样 这个
  • 无法在 Swift 的 Storyboard 中加载 UIViewController XIB 文件

    我读了使用 XCode 故事板实例化使用 XIB 进行设计的视图控制器 https stackoverflow com questions 9155719 using xcode storyboard to instantiate view
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的

随机推荐