시나리오 : Xcode14에 포함된 스위프트의 기본버전인 5.8을 사용하게 되면서 클로저에서 weak self (약한참조) 사용시 암시적으로 self를 허용[추출된 (unwrapped) self의 한해서]한다. 하지만 Xcode 14.3 사용자와 14.3 미만 버전의 사용자의 해프닝이 있었다.
AS-IS
{ [weak self] in
guard let self = self else { return }
self.dismiss()
}
guard문을 통해서 self 바인딩을 해주지않으면 [self?] 으로 접근을 해야하니 코드의 beatify를 위해 guard문을 통해 self를 바인딩하여 AS-IS의 코드처럼 self.dissmiss() [self] 를 사용해야했다.
TO-BE
{ [weak self] in
guard let self = self else { return }
dismiss()
}
하지만 5.8에서는 추출된 self 즉, unwrapped self에 한해서는 암시적으로 접근이 가능하기 때문에 [self]를 붙이지 않고 사용이 가능하다.
Xcode 14.3버전에서는 빌드이슈가 없었던 뤠인님은 "제 노트북에서는 동작합니다만?"을 시전해보려했지만 14.2 버전을 사용하던 악성유저 앨빈을 피해갈 수 없었다.
마무리
뤠인님이 기존 코드 컨벤션에 맞춰 self 쓰는걸로 잘 마무리 되었다😎
ref.
https://github.com/apple/swift/pull/40702
[Apple News] 4월29일부터 적용되는 App Store Connect 업로드 관련 요구 사항 (4) | 2024.02.07 |
---|---|
[Apple News] Xcode Cloud 25시간 무료!( 개발자 프로그램 멤버십 ) (6) | 2023.12.08 |
[Apple News] 연말연시 연휴를 위한 앱 준비 (8) | 2023.12.06 |
[Apple News] 개인정보 보호를 위해 API 사용 목적을 제출 (4) | 2023.08.04 |
[Apple News] 애플 심사 지연 - 프로그램 사용권 계약 업데이트 (0) | 2023.07.14 |
댓글 영역