为什么从未调用DispatchGroup deinit?

拉杰蒙德·扎维希拉克(RajmundZawiślak)
final class MyDispatchGroup: DispatchGroup {
    deinit {
        print("DEINIT")
    }
}

var dispatchGroup: MyDispatchGroup? = MyDispatchGroup()
dispatchGroup = nil

我找不到有关它的任何信息,但我很好奇它为什么如此运行。

调度对象不符合各种继承行为。尝试覆盖init(如果您查看指定的初始化程序的标题,则说“ /* not inherited */”。)或尝试在子类中实现另一个方法,然后从实例中调用它。或者,为您的课程提供强大的参考,并在“ Debug Memory Graph”导航器中查找它,而您在那儿找不到它。这种传统的继承行为均无效。

调度对象具有复杂的历史。最初,它们是通过C API公开的,并且不符合ARC。然后,他们向此C API对象添加了ARC功能(可以使用编译时标志打开或关闭ARC功能)。然后,他们用更传统的Swift对象类定义包装了C API,但实际上仍在幕后使用此旧C API。

底线,DispatchGroup不支持子类化。不能将DispatchGroup子类化-“仅通过Objective-C运行时可见”?提示此问题已在iOS 10+中“修复”,但事实并非如此。我唯一的问题是,鉴于所有这些,为什么在所有这些时间之后仍未声明DispatchGroupfinal

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Swift的deinit不被调用

来自分类Dev

Swift的deinit不被调用

来自分类Dev

在deinit中使用NotificationCenter.default.removeObserver(self),为什么还要对deinit进行调用?

来自分类Dev

Swift方法:不调用deinit

来自分类Dev

如何在Swift中调用deinit

来自分类Dev

在NSNotificationCenter调用.removeObserver的正确位置= Swift deinit()?

来自分类Dev

未在Show Detail segue上调用Deinit

来自分类Dev

什么时候应该使用deinit?

来自分类Dev

什么时候应该使用deinit?

来自分类Dev

为什么视图控制器的deinit不使用RXSwift进行调用?

来自分类Dev

为什么视图控制器的deinit不使用RXSwift进行调用?

来自分类Dev

为什么在调用对象的deinit方法后可以访问该对象?

来自分类Dev

具有SearchController的TableView-未调用DEINIT

来自分类Dev

永远不会调用Deinit方法-Swift Playground

来自分类Dev

应该在UITableViewCell中调用deinit吗?

来自分类Dev

如何在类定义中快速调用deinit方法

来自分类Dev

关闭视图控制器后未调用 OSX deinit

来自分类Dev

为什么从未调用$ routeChangeSuccess?

来自分类Dev

如何使deinit快速生效

来自分类Dev

为什么MousePressed从未被调用?

来自分类Dev

为什么我的timeToLiveFunction从未调用过?

来自分类Dev

为什么从未调用handle_info?

来自分类Dev

为什么我的计时器Observable从未调用过?

来自分类Dev

为什么我的终止处理程序从未被调用?

来自分类Dev

为什么从未调用ArrayIterator子类的构造函数?

来自分类Dev

为什么从未调用$ .ajax()回调函数?

来自分类Dev

为什么从未调用FeathersJS身份验证挂钩?

来自分类Dev

为什么从未调用过滤器链?

来自分类Dev

为什么我的 ByteToMessageDecoder 解码方法从未被调用?

Related 相关文章

  1. 1

    Swift的deinit不被调用

  2. 2

    Swift的deinit不被调用

  3. 3

    在deinit中使用NotificationCenter.default.removeObserver(self),为什么还要对deinit进行调用?

  4. 4

    Swift方法:不调用deinit

  5. 5

    如何在Swift中调用deinit

  6. 6

    在NSNotificationCenter调用.removeObserver的正确位置= Swift deinit()?

  7. 7

    未在Show Detail segue上调用Deinit

  8. 8

    什么时候应该使用deinit?

  9. 9

    什么时候应该使用deinit?

  10. 10

    为什么视图控制器的deinit不使用RXSwift进行调用?

  11. 11

    为什么视图控制器的deinit不使用RXSwift进行调用?

  12. 12

    为什么在调用对象的deinit方法后可以访问该对象?

  13. 13

    具有SearchController的TableView-未调用DEINIT

  14. 14

    永远不会调用Deinit方法-Swift Playground

  15. 15

    应该在UITableViewCell中调用deinit吗?

  16. 16

    如何在类定义中快速调用deinit方法

  17. 17

    关闭视图控制器后未调用 OSX deinit

  18. 18

    为什么从未调用$ routeChangeSuccess?

  19. 19

    如何使deinit快速生效

  20. 20

    为什么MousePressed从未被调用?

  21. 21

    为什么我的timeToLiveFunction从未调用过?

  22. 22

    为什么从未调用handle_info?

  23. 23

    为什么我的计时器Observable从未调用过?

  24. 24

    为什么我的终止处理程序从未被调用?

  25. 25

    为什么从未调用ArrayIterator子类的构造函数?

  26. 26

    为什么从未调用$ .ajax()回调函数?

  27. 27

    为什么从未调用FeathersJS身份验证挂钩?

  28. 28

    为什么从未调用过滤器链?

  29. 29

    为什么我的 ByteToMessageDecoder 解码方法从未被调用?

热门标签

归档