Swift 为什么UserDefaults.init(suiteName:)是一个可失败的初始值设定项?

Swift 为什么UserDefaults.init(suiteName:)是一个可失败的初始值设定项?,swift,userdefaults,Swift,Userdefaults,UserDefaults.init(suiteName:)初始值设定项是一个可失败的初始值设定项。但是,文档()没有指定在什么情况下返回nilUserDefault对象 首先,在什么情况下它将返回nilUserDefault对象 其次,我可以在iPhone和iPad应用程序的上下文中强制展开它吗?如果传递给应用程序的主捆绑包标识符,则初始值设定项将返回一个nil对象。如果您要传递任何其他值,我猜您可以假设此初始值设定项将返回一个非nil对象 (感谢@Larme在我的问题下的评论。)对suiteN

UserDefaults.init(suiteName:)
初始值设定项是一个可失败的初始值设定项。但是,文档()没有指定在什么情况下返回nil
UserDefault
对象

首先,在什么情况下它将返回nil
UserDefault
对象

其次,我可以在iPhone和iPad应用程序的上下文中强制展开它吗?

如果传递给应用程序的主捆绑包标识符,则初始值设定项将返回一个nil对象。如果您要传递任何其他值,我猜您可以假设此初始值设定项将返回一个非nil对象


(感谢@Larme在我的问题下的评论。)

suiteName
使用
UserDefaults.globalDomain
,它似乎返回零值。在文档中,它声明这是一个无效的参数,作为bundle id,我想传递bundle id也可能失败。我在
suiteName
参数描述中遗漏了这一点。现在我重读了一遍,这是有道理的。因此,如果我传入的值不是我的应用程序的主包标识符,也不是,我想我可以假设我将得到一个非nil
UserDefaults
对象。