iOS | 클로져에 대해서 알고싶다..

일어나 개발해야지·2023년 9월 11일

Intro

tableView와 customCell을 사용해서 회원가입 페이지를 구성했다.원본 데이터의 위치는 tableView 사용자입력은 cell에서 발생하는 상황.cell에서 발생하는 value를 가져와서 tableView pass값을 변경해줘야했다. cell의 value를 tableView에 전달하기 위해서 사용하게 된게 클로져였다.

Find keyword

익명함수
경량문법
참조타입

Use closure

Cell에 작성할 내용

	// [프로퍼티의 선언]:
    // 1.함수를 변수로 가지고 있고
    // 2.Bool값의 파라미터를 받음
    // 3.return값이 없는 void 형태
    // 4.옵셔널 상태
    
    var passHandler:((Bool)->Void)?
    // [데이터 전달]
    // passHandler라는 클로져는 pass값을 Bool값으로 받아서 전달함
    
    let pass = isValid(str: inputValue  ?? "", condition: condition)
    
    passHandler?(pass)

tableView(VC)에 작성할 내용

	//[본문]
    // passCell는 [데이터 전달] 에서 받아 온 Bool값을 의미
	// [weak self] 약한참조
    // data.pass 값에 passCell에서 받아온 값을 할당
      cell.passHandler = {[weak self] passCell in
            self?.data[indexPath.row].pass = passCell
       }

0개의 댓글