Ошибка выполнения после установки модуля, который использует NumberFormatter - PullRequest
0 голосов
/ 16 января 2019

Я использую расширения для Double и NSNumber для генерации строк, представляющих цены.

extension NSNumber {

    internal func getPriceString(currencyCode: String? = nil, numberOfFractionDigits: Int = 2) -> String? {
        let numberFormatter = NumberFormatter()
        numberFormatter.numberStyle = .currency
        numberFormatter.locale = Locale.current
        numberFormatter.currencyCode = currencyCode ?? Locale.current.currencyCode ?? "USD"
        numberFormatter.minimumFractionDigits = numberOfFractionDigits
        numberFormatter.maximumFractionDigits = numberOfFractionDigits
        return numberFormatter.string(from: self)
    }

}

extension Double {

    public func getPriceString(currencyCode: String? = nil, numberOfFractionDigits: Int = 2) -> String? {
        return NSNumber(value: self).getPriceString(currencyCode: currencyCode, numberOfFractionDigits: numberOfFractionDigits)
    }

}

Этот код прекрасно работает при добавлении в основной проект. Я могу вызвать метод Double для номеров, возвращаемых сервером, чтобы получить действительные строки цен. Например:

priceLabel.text = item.price.getPriceString(currencyCode: "EUR", numberOfFractionDigits: 0)
// €1,024

Однако моя цель - переместить эти расширения в модуль, который я могу использовать в нескольких проектах. И когда тот же самый код, добавленный в модуль, вызывается из основного проекта, я получаю ошибку времени выполнения.

Почему это происходит и как я могу это исправить?

1 Ответ

0 голосов
/ 16 января 2019

Папка проекта должна быть очищена после установки / обновления модуля.

Shift ⇧ + Команда ⌘ + K

Опция ⌥ + Сдвиг ⇧ + Команда ⌘ + K

...