Я получил сообщение об ошибке «Дополнительный аргумент forKey в вызове» для кэша - PullRequest
2 голосов
/ 28 апреля 2019

Я использовал «HybridCache» из «Ничего, кроме кэша».

Но это не может быть использовано для Swift4. Поэтому я перехожу на «Хранение».

И часть кода получила эту ошибку массаж

Дополнительный аргумент в вызове

Это код для загрузки некоторых данных.

    func object(for key: String) -> Observable<SwiftyJSON.JSON?> {
        return Observable.create { [weak self] observer in

            self?.cache?.object(key) { (data: Data?) in <-- Error massage for "key"
                guard let data = data else {
                    observer.onNext(nil)
                    observer.onCompleted()
                    return
                }

                Async.userInteractive {
                    let json = SwiftyJSON.JSON(data: data)

                    Async.main {
                        if let error = json.error {
                            observer.onError(error)
                        } else {
                            observer.onNext(json)
                        }
                        observer.onCompleted()
                    }
                }
            }

            return Disposables.create()
        }
    }

Я не знаю, как это решить cache это.

    fileprivate let cache = try? Storage(
        diskConfig: DiskConfig(name: "ReadGirl.JSONCache"),
        memoryConfig: MemoryConfig(expiry: .never, countLimit: 10, totalCostLimit: 10),
        transformer: TransformerFactory.forCodable(ofType: Data.self) // Storage<User>
    )

1 Ответ

1 голос
/ 29 апреля 2019

Я исправил сам.

self?.cache?.async.object(forKey: key) { result in
                switch result {
                case .value(let data):
                    Async.userInteractive {
                        let json = try? SwiftyJSON.JSON(data: data)
                        Async.main {
                        observer.onNext(json)
                        observer.onCompleted()
                        }
                    }
                case .error( _):
                        observer.onNext(nil)
                        observer.onCompleted()
                    }
                }
            return Disposables.create()
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...