어느날 @objc Inference 와 관련된 경고를 보았다

이미지
Xcode 9 이전에 개발했던 프로젝트를 Xcode 9 에서 Swift 4 기반으로 변경한 적이 있다. 이 과정에서 단 한줄의 코드 변경도 없었고, 당연하게도 해당 프로젝트는 별 문제는 없이 잘 동작하였다. 다만 약간 찝찝하게도 빌드 도중 아래와 같은 색다른(?) 경고를 보게 되었다. The use of Swift 3 @objc inference in Swift 4 mode is deprecated. Please address deprecated @objc inference warnings, test your code with “Use of deprecated Swift 3 @objc inference” logging enabled, and then disable inference by changing the "Swift 3 @objc Inference" build setting to "Default" for the "TARGET NAME" target. 해석하자면 뭐라고 할까... 그냥 구버전 방식의 @objc 를 사용하는 것이 Swift 4 에선 호환이 안되니 무슨무슨 설정을 바꿔라 이런 의미로 해석된다. 하여간, 이 글은 이 경고를 해결하는 방법을 설명한다.

Xcode 9 눈에 띄는 신기능들 (영상)

이미지
Xcode 9 을 제대로 찝적거릴(?) 기회가 생겨서 신기능을 조금씩 느껴보고 있다. 이왕 이렇게 된거 이런 기능들을 영상으로 한번 찍어보자 해서 녹화해서 편집해 봤다.

Swift 4 에서 KVO ​사용해보기

Swift 4 부터는 KVO (Key-Value Observing) 를 쓰기가 이전보다 약간 더 편해질 예정이다.

KVO (Key-Value Observing) 소개

KVO 는 Key-Value Observing 의 약자, 즉 특정 키의 값의 변화를 감지하기 위한 기능이다. Objective-C 를 위해 만들어진 기능이라 등장한지는 제법 되었지만, 현재의 앱 개발 패러다임에 있어서 - 모델(Model)의 변화를 뷰(View)에 반영하기 위함 등 - 값 변화를 인식하는 것은 굉장히 중요하기 때문에 무시할 수는 없는 기능인 것 같다.

눈에 띄는 Swift 4 변경점들 (Xcode 9 첫 Beta 기준)

최근에는 좀 게으르게(?) 지내고 있다가 WWDC가 온줄도 모르고 Xcode 9 의 베타가 나오는 줄도 모르고 허송세월 보내고 있었다. 잠깐 정신을 차리고 Swift 4 에 관련된 내용을 간단히 정리해 볼까 한다.

Swift 4 - Codable / JSONDecoder / JSONEncoder

개인적으로 꼽는 Swift 4의 가장 유용한 업데이트 중 하나로 Codable 프로토콜 및 JSONDecoder / JSONEncoder 를 꼽고 싶다. JSON 이라는 이름이 가지는 의미야 유명하니 무슨 말인지는 다들 알 것인데, Codable 이라는 프로토콜은 타입과 JSON을 언어 차원에서 묶어주는 방법을 제공해 준다는 점에서 파격적(?)이다. 이 글은 이 새로운 기능에 대해 겉(?)만 핥으려는 내용이다.

[iOS] 기묘한 에러메시지 "Unable to insert COPY_SEND"

이미지
오랫만에 옛날에 만들어 둔 iOS용 앱 프로젝트를 수정할 일이 생겼다. 그런데 문제를 수정하고 디버그 모드로 디바이스에 넣어서 실행시켜보니 괴상한 오류메시지가 로그 창에 찍히기 시작했다.