為用戶創(chuàng)建沙盒時(shí)經(jīng)常用到這樣的代碼:
let d = UserDefaults(suiteName: "Hesse")
此時(shí) d
是 UserDefaults?
類型。那么,正如這篇文章標(biāo)題所問的剃幌,d
何時(shí)為nil
呢?
通過文檔我們可以知道晾浴,當(dāng)傳入的suiteName無效時(shí),d
即為nil
了牍白。suiteName無效的情況包括:
- 值與Bundle Identifier相同脊凰;
- 值為
UserDefaults.globalDomain
(rawValue是"NSGlobalDomain"
)。因?yàn)檫@個(gè)suiteName是系統(tǒng)保留的茂腥,所以不能使用狸涌。
print(UserDefaults.globalDomain) // NSGlobalDomain
除以上情況外,返回的UserDefaults
對(duì)象都是non-nil的最岗。