Как сделать так, чтобы в сообщении было правильное слово?

Когда вы объявляете функцию в swift, ее параметры по умолчанию имеют константы «let». И мы не можем присваивать значение константам.

В вашем случае вы пытаетесь присвоить переменной «error», которая является параметром, следовательно, константой (let). Вы не можете сделать это.

Вы можете вернуть сообщение об ошибке

class SingUpError {
    func errorMessage(name: String?, lastName: String?,email: String?, password: String?) -> String{

        enum ErrorMessage: String {
            case noName = "Name cannot be empty"
            case noLastName = "Last name cannot be empty"
            case noEmail = "Email cannot be empty"
            case noPassword = "Password cannot be empty"
        }

        if name == "" {
            return ErrorMessage.noName.rawValue
        }

        return ""
    }
}
0
задан Filip Cernov 20 January 2019 в 02:21
поделиться

2 ответа

Ссылки в текстовых представлениях являются интерактивными, только если текстовое представление выбирается, но не редактируется.

set editable false & amp; selectable true:

text.isEditable = false
text.isSelectable = true

Чтобы получить выделенный текст из textview, который является ключевым в вашем случае, используйте следующую функцию:

func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {
          if let key = textView.text.substring(with: characterRange){
            if let value = dictionary[String(key)]{
                print("text :",value)
                alert(value: value)
            }
        }
        return false
    }

Использование расширения для строки, чтобы получить подстроку с диапазоном:

extension String {
    func substring(with nsrange: NSRange) -> Substring? {
        guard let range = Range(nsrange, in: self) else { return nil }
        return self[range]
    }
}
0
ответ дан Rocky 20 January 2019 в 02:21
поделиться

Вы можете сделать это, создав расширение для повторного использования в следующий раз, как показано ниже:

extension UITextView{
    func textRangeFromNSRange(range:NSRange)->String{
        let myNSString = self.text as NSString
        return  myNSString.substring(with: range)
    }
}

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

 func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {

        if (URL.absoluteString == kURLString) {
            alert(value: textView.textRangeFromNSRange(range: characterRange))
        }
        return false
    }
[ 116] Если вы хотите получить значение из своего словаря, вы можете сделать это следующим образом:

func textView(_ textView: UITextView, shouldInteractWith URL: URL, in characterRange: NSRange) -> Bool {

        if (URL.absoluteString == kURLString) {
            alert(value: dictionary[textView.textRangeFromNSRange(range: characterRange)]!)
        }
        return false
    }

Отметил: убедитесь, что ссылки в textViews выбираются, но не редактируются .

0
ответ дан Mengheang 20 January 2019 в 02:21
поделиться
Другие вопросы по тегам:

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