почему поддержка кеша в guava слабых ключей () и слабых значений ()

Согласно проблемам NSURLSessionDownloadTask с сохранением почти полных предупреждений диска и https://forums.developer.apple.com/thread/43263 , похоже, что вы получите ошибка и его домен будут NSPOSIXErrorDomain с кодом ошибки ENOSPC (Ошибка, Без пробела).

Существует также возможность получить ошибку с доменом NSCocoaErrorDomain и код ошибки NSFileWriteOutOfSpaceError.

public func urlSession(_ session: URLSession, task: URLSessionTask,  didCompleteWithError error: Error?) {
    if let nserror = error as? NSError {
        if (nserror.domain == NSPOSIXErrorDomain && nserror.code == ENOSPC) ||
           (nserror.domain == NSCocoaErrorDomain && nserror.code == NSFileWriteOutOfSpaceError) {
            // Not enough space
        }
    }
}

0
задан goodier 19 January 2019 в 05:32
поделиться

1 ответ

Это не случай, когда weakKeys означает «собирать ключи, но сохранить значения», и это тот случай, когда weakValues означает «собирать значения, но сохраняйте ключи ».

То, что делает weakKeys, говорит:« когда больше нет сильных ссылок на клавишу , соберите всю запись ». То, что делает weakValues, это говорит: «когда больше нет сильных ссылок на значение , соберите всю запись». Поэтому, когда вы используете оба, вся запись собирается, когда либо ключ, либо значение не имеют строгих ссылок, указывающих на него.

0
ответ дан Louis Wasserman 19 January 2019 в 05:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: