본문 바로가기
iOS

[Swift] 웹뷰(WKWebView), 옵셔널 바인딩(optional binding)

by swiftyElly 2020. 9. 9.
⚠️
블로그 주인장의 뇌용량이 부족하여 적어두는 개인 기록장이므로 말투가 이상할 수 있습니다. 저의 노트 필기를 보고 있다, 생각해 주세요〰️❗️
📌

 

오늘 만들 것: Move! 버튼을 누르면 다른 화면으로 이동하기

 

 

  • 웹 뷰 사용법
    1. url을 찾는다: url string을 준비한다.
    1. url → request로 변경: url string을 URL을 거쳐 URLRequest로 만들어준다
    1. req → load: URLRequest를 웹뷰에 뿌려준다.
    1, 2번을 먼저 해줬다.
    let urlString = "https://www.google.com"
    let url = URL(string: urlString)
    let urlReq = URLRequest(url: url)

이렇게 세 줄이면 간단! 한 줄 알았는데

오류떴으,,

아,, 날라가서 다시 씀 🤦‍♀️

여기 빨간 경고를 보면 옵셔널 타입인 URL?는 반드시 URL로 unwrapped 해야 한다고 되어있다.

찬찬히 보겠음.

  • ?: 이 물음표는 변수가 '값이 비어있을 수도 있는 애다' 라는 뜻. 비어있을 수도 있으니 wrapping 해놓은 것임. 변수를 사용할 때 '사실은 값이 있지롱!' 하고 벗겨서 보여줘야 함 → 이 과정을 upwrapping 이라고 함. 무조건 해줘야 해

어떻게 하느냐, 앞에 if를 붙이면 됨

if let url = URL(string: urlString){
		let urlReq = URLRequest(url: url)
]
  • if let url 〰️ { } → 만약 url에 값이 진짜 있으면 { } 안의 구문을 실행해라

 

이제 웹 뷰에 뿌려주기 〰️

WebViewMain.load(urlReq)

 

 

그리고 유튜브 댓글을 보니까 Library에 WebKit.framework를 추가해야 한다고 한다!

이 블로그를 참고함

 

 

성공 〰️❗️

 


추가로, 이 블로그를 참고해서 옵셔널에 대해 보겠음!

옵셔널 변수의 이용

  • 옵셔널 (Optional): 변수의 값이 nil일 수 있다
  • 옵셔널은 ? 키워드를 붙여서 선언한다
    //그냥 String 변수 선언
    var abc1 = "1"
    
    //변수 옆에 :String? 이렇게 되어있으면 "값이 비어있을 수 있다."는 뜻
    var abc2: String?

옵셔널을 사용하는 방법에는 두 가지가 있음

  • 옵셔널 해제 (Optional Unwrapping)
    var aaa = abc2!
    이런 식으로 씀. abc2에 무조건 값이 있으니까 믿고 벗기라는 뜻

⚠️ abc2가 nil인데 강제로 ! 옵셔널 바인딩을 하면 런타임 에러가 발생한다.

또 다른 예시

var number1:Int? = 20 var number2:Int = 100 if number1 { let sum = number1! + number1! }

  • 옵셔널 바인딩 (Optional Binding)
    var number1:Int? = 20
    var number2:Int = 100
    
    if let nonOptionalNumber1 = number1 {
        let sum = nonOptionalNumber1 + number2
    }
    → 새로운 상수 nonOptionalNumber1에 옵셔널 변수 number1 값을 넣고, 그 이후로 non-optional 변수를 사용함

댓글