方便初始化与自我初始化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方便初始化与自我初始化相关的知识,希望对你有一定的参考价值。

为什么要使用便捷init而不是仅仅为类属性设置默认值?

答案

便捷初始化程序可用于与默认值无关的各种事物。他们可以提供数据转换或许多其他功能。在此示例中,便捷初始化程序允许您将Float传递给需要Int的内容。

import Foundation

class X {
    let value: Int
    init(value: Int) {
        self.value = value
    }

    convenience init(rounding float: Float) {
        self.init(value: Int(round(float)))
    }
}

当然,这也可以写为指定的(非便利)初始化程序,但是委托给少量指定的初始化程序使得子类化更简单并且可以减少代码重复(因此“方便”)。

另一答案

您并不总是为类属性提供默认值,有时您创建一个具有属性和方法的类,以及稍后在创建该类的实例时可能获得的属性的所有值。为此,使用了init。

以上是关于方便初始化与自我初始化的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

片段未与片段管理器关联。 (对话片段)

使用片段的谷歌地图

Jekyll 偏移代码片段高亮的初始行

不能在属性初始化器中使用实例成员“pdfName”;属性初始化程序在“自我”可用之前运行

vscode 用户代码片段 vue初始化模板 Snippet #新加入开头注释 自动生成文件名 开发日期时间等内容