0

我试图在我的代码中加入更多结构,所以我正在实现这个UserDefaultsService

class UserDefaultsService {
    
    let defaults = UserDefaults(suiteName: UserDefaults.Keys.groupKey)

    static let shared = UserDefaultsService()
    
    func updateDataSourceArrayWithWishlist(wishlist: Wishlist) {
        guard var dataSourceArray = defaults?.getDataSourceArray() else { return }
        if let index = dataSourceArray.firstIndex(where: ({$0.id == wishlist.id})) {
            dataSourceArray[index] = wishlist
            defaults?.setDataSourceArray(data: dataSourceArray)
        }
    }
    
    func getDataSourceArray() -> [Wishlist]? {
        return defaults?.getDataSourceArray()
    }
}

但如您所见defaults,是可选的。我知道我可以安全地打开它,guard例如每次我使用它时,但有没有更好/更清洁的方法来做到这一点?我在想的是只打开一次,然后我可以在UserDefaultsService.

4

1 回答 1

0

添加!它的声明的结尾

let defaults = UserDefaults(suiteName: UserDefaults.Keys.groupKey)!
于 2021-01-28T15:10:28.493 回答