Расширение строки — получена ошибка «Нет члена»

Я создал расширение String:

extension String {
    var cSym:String? {
        return CurrencyConversion.getCurrencySymbolWithCode(self)
    }
}

Когда я иду использовать расширение, я вижу его, и Xcode указывает на расширение в порядке, но затем, когда я запускаю, я получаю сообщение об ошибке:

Значение «String» не имеет члена «cSym»

class func getCurrency(code : String) -> String {
    return code.cSym ?? "$"
}

Я просматривал документацию Apple https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html и я не понимаю, в чем проблема. Я также скопировал и вставил фрагмент кода из документации, и я получаю точно такую ​​​​же ошибку для Double.

Может быть, это проблема Swift2.1?


person RichAppz    schedule 09.11.2015    source источник


Ответы (2)


Выяснив проблему, Xcode, похоже, удалил целевую ссылку на ту, с которой я сейчас работал.

Не идеальная ситуация, но если кто-то столкнется с этим, просто дважды проверьте, не удалил ли Xcode связь для вас.

person RichAppz    schedule 10.11.2015

Если вы используете свое расширение из фреймворка или в чем-то, что не находится в той же области, что и само расширение, вы должны пометить его содержимое с помощью public, чтобы сделать его доступным (методы Swift по умолчанию internal):

extension String {
    public var cSym:String? {
        return CurrencyConversion.getCurrencySymbolWithCode(self)
    }
}
person Eric Aya    schedule 09.11.2015
comment
Спасибо за быстрый ответ, но это все еще вызывает ту же ошибку. - person RichAppz; 09.11.2015
comment
Пожалуйста. Был ли я неправ в своей диагностике, нет проблем с прицелом? В этом случае я надеюсь, что вы найдете объяснение и решение. :) - person Eric Aya; 09.11.2015
comment
Оказывается, Xcode решил удалить ссылку на цель, над которой я работал. Типичный! - person RichAppz; 10.11.2015
comment
Ах! Да, я должен был рассказать вам и об этой возможной ситуации, я не подумал об этом, когда отвечал. Я рад, что ты узнал, что было не так. - person Eric Aya; 10.11.2015
comment
Да, это сводило меня с ума, я не знаю, как это потеряло связь с целью. Я продолжаю находить странные ошибки в новом Xcode. Кажется, становится хуже, чем лучше. - person RichAppz; 10.11.2015