语句“ public typealias AnyObject”如何使AnyObject成为协议?

时间:2019-02-09 05:56:57

标签: ios swift

当我按下 Command 并单击AnyObject导航到AnyObject的界面时,我遇到了以下定义:

public typealias AnyObject

我看到此注释写在定义上方:

  

所有类隐式遵循的协议。

好吧,如果不显式使用关键字AnyObject,我将无法理解此定义如何使protocol成为protocol。 另外,它是没有typealias的{​​{1}},这是无效的语句。

我不能写这样的声明:

= someType

出现编译错误。

任何人都可以解释这里到底发生了什么吗?

1 个答案:

答案 0 :(得分:2)

问题是,按住public class Main { public static void main(String[] args) throws Exception { OtherClassInner inner = new OtherClassInner(); } } class OtherClass { static class OtherClassInner { } } class YetAnotherClass { static class OtherClassInner { } } 的同时按下AnyObject并不会真正看到源代码,而只是看到一个CMD界面。如果您深入研究Swift源代码,您实际上会发现

public

实际上看起来像这样:

public typealias AnyObject

这是包含此代码https://github.com/apple/swift/blob/master/stdlib/public/core/Policy.swift的文件的链接