正确处理初始化失败的方法 [英] Proper way to handle a fail to init
问题描述
我正在寻找一种在初始化期间处理无效参数的正确方法。
I am looking for a proper way to handle a invalid argument during a initialization.
我不确定如何使用Swift来做,因为init没有返回类型。我怎么能告诉谁试图初始化这个类你做错了什么?
I am unsure how to do it using Swift as the init has't a return type. How can I tell whoever is trying to initialize this class that you are doing something wrong?
init (timeInterval: Int) {
if timeInterval > 0
self.timeInterval = timeInterval
else
//???? (return false?)
}
谢谢!
推荐答案
使用可用的初始化程序。这样的初始化程序看起来非常类似于常规指定的初始化程序,但在 init
之后有一个'?'字符,并且允许返回 nil
。可用的初始值设定项创建一个可选值。
Use a failable initializer. Such an initializer looks very similar to a regular designated initializer, but has a '?' character right after init
and is allowed to return nil
. A failable initializer creates an optional value.
struct Animal {
let species: String
init?(species: String) {
if species.isEmpty { return nil }
self.species = species
}
}
参见 Apple有关可用初始化程序的文档以获取更多详细信息。
See Apple's documentation on failable initializers for more detail.
这篇关于正确处理初始化失败的方法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!