为用户创建沙盒时经常用到这样的代码:
let d = UserDefaults(suiteName: "Hesse")
此时 d
是 UserDefaults?
类型。那么,正如这篇文章标题所问的,d
何时为nil
呢?
通过文档我们可以知道,当传入的suiteName无效时,d
即为nil
了。suiteName无效的情况包括:
- 值与Bundle Identifier相同;
- 值为
UserDefaults.globalDomain
(rawValue是"NSGlobalDomain"
)。因为这个suiteName是系统保留的,所以不能使用。
print(UserDefaults.globalDomain) // NSGlobalDomain
除以上情况外,返回的UserDefaults
对象都是non-nil的。
网友评论