正确处理初始化失败的方法 [英] Proper way to handle a fail to init

查看:172
本文介绍了正确处理初始化失败的方法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在寻找一种在初始化期间处理无效参数的正确方法。

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆