복붙노트

[SWIFT] 바인딩 조건에 대한 초기화가 선택 유형이 있어야하지 '문자열'

SWIFT

바인딩 조건에 대한 초기화가 선택 유형이 있어야하지 '문자열'

해결법


  1. 1.컴파일러는 완전히 불필요하기 때문에 허락한다면 당신은을 사용할 수 있음을 말하고있다. 당신은 포장을 벗긴 모든 선택적 항목이 없습니다 : URL은 선택하지이며, absoluteString 속성 중 하나를 선택하지 않습니다. 하자가 포장을 벗긴 선택적 항목에 독점적으로 사용하는 경우. 새 일정이라는 URL을 만들려면, 그냥 해 :

    컴파일러는 완전히 불필요하기 때문에 허락한다면 당신은을 사용할 수 있음을 말하고있다. 당신은 포장을 벗긴 모든 선택적 항목이 없습니다 : URL은 선택하지이며, absoluteString 속성 중 하나를 선택하지 않습니다. 하자가 포장을 벗긴 선택적 항목에 독점적으로 사용하는 경우. 새 일정이라는 URL을 만들려면, 그냥 해 :

    func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
        let url = URL.absoluteString
        if #available(iOS 8.0, *) {
            VPMainViewController.showCompanyMessageWebView(url)
        }
        return false
    }
    

    그러나 (!) 참고 : URL을 명명 된 매개 변수와 지역 상수라는 이름의 URL이 거대한 혼란을 가지고. 이 같은 더 나을 수 있습니다 :

    func textView(textView: UITextView, shouldInteractWithURL URL: NSURL, inRange characterRange: NSRange) -> Bool {
        if #available(iOS 8.0, *) {
            VPMainViewController.showCompanyMessageWebView(URL.absoluteString)
        }
        return false
    }
    

  2. 2.absoluteString는 옵션 값의 단순한 문자열이 아니다. URL에 변수가 전무인지 확인할 수 있습니다

    absoluteString는 옵션 값의 단순한 문자열이 아니다. URL에 변수가 전무인지 확인할 수 있습니다

    if let url = yourURLVariable {
        // do your textView function
    } else {
        // handle nil url
    }
    
  3. from https://stackoverflow.com/questions/32768274/initializer-for-conditional-binding-must-have-optional-type-not-string by cc-by-sa and MIT license