띄어쓰기는 잘 안보입니다. 그래서 수백 수천줄의 코드 사이에선 더욱더 놓치기 쉽죠. 게다가 띄어쓰기는 키워드의 구분이 되기도 합니다. 그래서 변수명이나 함수명에선 띄어쓰기 대신 어떤 문자를 사용하느냐에 따라 다양한 표기법이 있습니다. 코딩 스타일 예시 내용 카멜 표기법(Camel Case) camelCase 띄어쓰기가 있는 부분의 문자를 대문자로 표기한다. (낙타, lower camel case라고도 함)) 헝가리안 표기법(Hungarian Notation) strHungarianNotation 카멜 케이스에서 앞에 데이터 타입을 명시하여 표기한다. (str, i, ch, b 등) 파스칼 표기법(Pascal Case) PascalCase 카멜 케이스에서 맨 앞의 문자까지 대문자로 표기한다. (쌍봉낙타, ..
iPhone XS 시리즈 이전의 기기들은 iTunes에서 UDID(Unique Device Identifier)를 가져왔습니다. 하지만 2018년에 출시된 XS 시리즈부터는 Xcode에서 UDID를 확인해야합니다. 또한, XS 시리즈 이전 기기들과 UDID 포맷이 다릅니다. Xcode 10.1기준으로 Window > Devices and Simulators > Devices로 들어가면 Identifier를 확인할 수 있습니다.
Objective-C로 프로그래밍을 시작하는 분들은 많지 않을 겁니다. 대부분 C나 java, 비교적 최근에 시작하신 분들은 javascript나 python 등으로 먼저 입문하셨을겁니다. Objective-C는 다른 언어들과 차이가 많은 편인데 그 중 쉽게 보이는 하나는 switch 문에 NSString 타입의 비교를 할 수 없습니다. 오로지 정수형 데이터만 비교 가능하기 때문에 아스키코드로 사용되는 char 타입까지만 switch문에서 비교가 가능하고 그 외의 비교가 불가능합니다. 이에 대한 해결책은 1. NSArray에서 index로 구분2. NSDictionary에서 key로 구분3. typedef에서 enum으로 구분4. if문에서 String 비교 메소드로 구분 하는 방법들이 있습니다. 1~3..
Xcode는 메이저 업데이트 이후로 등장한 OS에 대한 적응 업데이트가 별도로 없습니다. 무슨 말인가 하면 Xcode 8이 나온 이후에 iOS 10이 배포되었기 때문에, 더 이상 업데이트가 없는 Xcode 7에서는 iOS 10의 기기에서 빌드가 되지 않습니다. (시뮬레이터에서는 해당 버전 시뮬레이터 다운로드로 테스트가 가능합니다) 그래서 iOS 10 기기에서의 테스팅을 위해선 Xcode 8이 필요합니다. 새 술은 새 부대에 담으라는 단순한 이유입니다. 하지만 (다른 이유가 아닌)단순히 디바이스 빌드가 되지 않는다는 이유로 개발 환경을 바꾸는 것은 빈대 잡으려고 초가삼간 태우는 격입니다. 기존 개발 환경을 유지하면서 새로운 OS에 대한 대응을 하기 위한 방법을 소개합니다. 우선 해당 OS가 나온 이후에 업..
정식 배포를 앞두고 있는 하이 시에라(High Sierra)를 제외하면, 현재 최신 macOS는 시에라입니다. 애플은 게으른 개발자에게 그렇게 관대하지 않고, 그 철학에 맞게 macOS(뿐만아니라 iOS) 환경에 있는 사용자들의 최신 OS 사용률은 상당히 높은편이죠. 일례로 출시한지 1년도 되지 않은 iOS10의 사용률은 17년 6월 기준으로 86%라고 합니다. 하지만 상황에 따라 구버전 Xcode를 사용하는(사용해야하는) 개발자들도 많습니다. 대표적으로 시에라에서 Xcode 6버전은 작동하지 않습니다. 시에라의 최소 구동 Xcode 버전은 7(현재 최신 버전은 Xcode 8)이기 때문이죠. 매년 버전업이 되는 것은 분명 환영할 만한 일이지만, 개발 환경까지 매년 바꾸기엔 아무래도 여러가지 문제점이 없진..