CommandLineToolkit

Форк
0
37 строк · 1.1 Кб
1
import Foundation
2
import PlistLib
3

4
public final class SystemDefaults: Defaults {
5
    private let userDefaults: UserDefaults
6
    
7
    public struct CannotCreateUserDefaultsError: CustomStringConvertible, Error {
8
        let suiteName: String
9
        public var description: String {
10
            "Не могу создать user defaults для набора \(suiteName)"
11
        }
12
    }
13
    
14
    public init(
15
        suiteName: String
16
    ) throws {
17
        guard let userDefaults = UserDefaults(suiteName: suiteName) else {
18
            throw CannotCreateUserDefaultsError(suiteName: suiteName)
19
        }
20
        self.userDefaults = userDefaults
21
    }
22
    
23
    public func entryForKey(_ key: String) throws -> PlistEntry? {
24
        if let object = userDefaults.object(forKey: key) {
25
            return try PlistEntry.create(fromAny: object)
26
        }
27
        return nil
28
    }
29
    
30
    public func set(entry: PlistEntry?, key: String) {
31
        userDefaults.set(entry?.toPlistObject(), forKey: key)
32
    }
33
    
34
    public func removeEntryForKey(_ key: String) {
35
        userDefaults.removeObject(forKey: key)
36
    }
37
}
38

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.