在Swift中,协议从class关键字继承意味着什么?
例如
protocol MyDelegate: class {
}
红蜘蛛 的答案的要旨是正确的,但它错过了我认为很重要的原因_ 。它取决于ARC和内存管理。
Swift是引用类型和值类型的语言。类_是引用类型,而其他所有类型都是值类型。实际上,我们并没有真正指定该协议是从… _继承
而来class
的,更像是我们指定该协议只能由 引用类型 实现。
为什么这么重要?
这很重要,因为没有它,我们将无法weak
在协议中使用关键字。
protocol ExampleProtocol {}
class DelegatedClass {
weak var delegate: ExampleProtocol?
}
这会产生错误:
“弱”不能应用于非类类型“ ExampleProtocol”
那么为何不?因为该weak
关键字仅对ARC适用的引用类型有意义。ARC不适用于值类型。而且,如果不使用指定协议class
,我们就不能保证将delegate
属性设置为引用类型。(如果不使用weak
,则很可能会创建一个保留周期。)
问题内容: $(‘button’).click(function () { 我的问题:尽管我打了个电话,为什么它仍然会提醒下一个号码?就像:忽略下面的代码,然后继续下一个元素 问题答案: 除了引发异常外,没有其他方法可以停止或中断循环。如果您需要这种行为,该方法是错误的工具。 提前终止可以通过以下方式完成: 一个简单的循环 一… 圈 另一个阵列的方法:,,,和测试使用谓词返回truthy值的数组元
例如: 如何与类的正常继承相反地使用它呢?我不能像在或int等文件中存储字符串一样,通常使用类似的东西,那么该如何使用呢?
问题内容: protocol BasePresenterProtocol : class {} protocol DashboardPresenterProtocol : BasePresenterProtocol {} 在上面的代码中,我在下一行收到错误 ,但未确认协议,但我已在中声明。虽然我已经宣布 为什么会出现此错误?请让我知道我在这段代码中做错了什么。 问题答案: 您不能使用type 属性
如果这听起来像是一个非常愚蠢的问题,我很抱歉,但这在《飞镖与颤栗》中是一个全新的问题。在颤振示例中,我经常看到这样的构造函数: 我知道什么{}是MAP或SET。但是{}在这里到底是什么意思?为什么它只用于传达一个值Key键? 提前谢谢
我想创建一个
问题内容: 下面是代码片段。 有人可以向我解释@符号在Java中的含义吗? 问题答案: 这是一个注释。 注释是元数据的一种形式。它们提供的程序数据不属于程序本身。注释对其注释的代码的操作没有直接影响。 注释确实会影响工具和库对待程序的方式,进而会影响正在运行的程序的语义。可以从源文件,类文件中读取注释,也可以在运行时从中读取注释。