gpt4 book ai didi

ios - Swift vs ObjC 初始化过程?

转载 作者:搜寻专家 更新时间:2023-10-30 22:14:28 26 4
gpt4 key购买 nike

在 ObjectiveC 中我们创建像这样的对象

 -(instancetype)init()
{
return [super init]; // Here it returns initialised value
}

Class *obj = [[Class alloc]init]

但是 swift initialiser 不会返回任何值。

From Swift docs

Unlike Objective-C initializers, Swift initializers do not return a value. Their primary role is to ensure that new instances of a type are correctly initialized before they are used for the first time.

init()
{
super.init()
}

let obj = Class()

现在 swift 初始化程序如何将实例返回到变量 obj?。

分配和初始化如何 swift 发生?

最佳答案

正如@NikolayKasyanov 所说,对于 init 初始化器系列,返回(self)是隐式的,您不能返回 nil。但是,如果您想初始化一个可以返回nil 的可选值,请使用类函数。例如:

class NumberLessThan5: Int {

var myNumber: Int
init (i: Int) {
self.myNumber = i
}
class func createWithInt(i: Int) -> NumberLessThan5? {
if i < 5 {
return NumberLessThan5(i)
} else {
return nil
}
}
}

关于ios - Swift vs ObjC 初始化过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24858500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com