반응형 swift2 SwiftData의 1:N Relationship 설정 시 크래시 문제 해결 크래시 발생SwiftData를 이용한 앱을 런칭했는데 iOS 개발자들을 긴장하게 만드는 이메일이 전해집니다.저는 이 메일을 받을 때마다 심장이 두근두근 하더군요. @Model이 Swift의 매크로 기반으로 동작하다보니 에러 발생 시 자동으로 생성된 코드 블럭 내에서 콜 스택이 호출됩니다.그 종착지는 앱 내에서 Post와 유사한 역할을 하는 History 모델의 author 필드를 세팅하는 로직이었습니다.그러나, History 생성 로직 구성 후 메서드 실행 시 문제가 없었기 때문에 정말 의아한 상황이었습니다.var author: Author?{ @storageRestrictions(accesses: _$backingData, initializes: _author) init(initialVal.. 2024. 7. 22. Swift에서 좀 더 안전한 방법으로 배열에 접근하기 일반적으로 배열에 index를 통해 접근하는 상황을 최소화해야 하는 것이 옳지만 어쩔 수 없이 관련된 상황이 발생하기 마련입니다.Swift에서는 좀 더 안전한 처리를 위해 함수 단에서 guard를 지원하는데 Array의 경우 index를 통해 접근해서 가져오는 값이 Optional 타입이 아니기 때문에 접근하는 index가 유효하지 않은 경우 꼼짝없이 Fatal error: Index out of range 메세지가 우리를 맞이해주게 됩니다.let arr = [1, 2, 3, 4]arr[4] // fatal error : index out of range이는 소중한 앱이 Crash(!!)되어 머리를 지끈하게 만드는 아주 빈번한 상황 중 하나이기 때문에 좀 더 안전하게 처리해줄 수 있는 방안을 찾아야합니다.. 2024. 7. 5. 이전 1 다음 반응형