코코아팟(CocoaPods)을 사용하게 될경우 프로젝트(.xcproject)기반에서 워크스페이스(.xcworkspace) 기반으로 변경된다. 이때 젠킨스(Jenkins)에서 기존 프로젝트 기반 설정을 그대로 사용할경우 기본 프로젝트는 잘 컴파일되지만, 연결된 Pods 프로젝트가 업데이트 및 컴파일이 되지 않아서 -lPods 링크… [본문 읽기]
카테고리 글 목록: iOS
allocWithZone: 의 의미
어떤 클래스에 대해 NSCopying 프로토콜을 구현하다보면 allocWithZone: 이라는 메서드에 맞닥뜨리게된다. 객체의 경우 힙(heap)에 할당되는데, 이 힙을 zone으로 나누고 해당 zone별로 메모리를 할당 및 관리하여 메모리 파편화를 막는데 도움을 주기위해 존재하는… [본문 읽기]
오토레이아웃 IB(Interface Builder)에서 다루기
제약조건(constraint) 설정 하나의 뷰를 선택 – 해당 뷰와 슈퍼뷰와의 관계 설정가능, 선택된 뷰 자체의 제약사항 설정가능 두개 이상의 뷰를 선택: 선택된 뷰들간의 관계 설정가능, 선택된 뷰들의 공통제약사항 설정가능(ex: equal width)… [본문 읽기]
iOS 고급 오토레이아웃(auto layout)
본 글에서는 기본적인 오토레이아웃 튜토리얼들에서 잘 다루지 않는 커스텀 뷰에 오토레이아웃(auto layout)을 적용하는 방법과, 전반적으로 레이아웃 시스템이 어떻게 동작하는지를 중심으로 설명해보도록 하겠다. 오토레이아웃의 종류나 기본적인 적용방법들은 다른 좋은 튜토리얼들이 많으니… [본문 읽기]
Cocoa Binding Controller Keys
코코아 바인딩 컨트롤러의 경우 최소한의 코딩만으로 model값이 변화할때 view와 model 사이의 싱크를 맞춰주는 역할을 한다. 애플에서 제공하는 각 클래스별 바인딩 가능한 키값들은 다음 문서 에서 확인하면 되고, 본 글에서는 자주… [본문 읽기]
MacOS 10.10 & iOS 8 새기능 익스텐션(Extensions) 개념 잡기
기존의 OS X나 iOS에서는 custom URL Scheme을 이용하거나 custom pasteboard(번들 seed ID를 동일한경우만 가능) 등을 이용하여 어플리케이션 간에 데이터를 ‘전달’하는 것만 가능했다. 즉, A라는 앱에서 B라는 앱으로 데이터를 전달한 후… [본문 읽기]
Aspect Oriented Programming in Objective-C
관점지향프로그래밍, Aspect Oriented Programming(AOP)이란? ‘Aspect’ 란 어떤 프로그램의 공통적인 기능(common feature)이 프로그램 전반에 걸쳐 영향을 주는 형태를 지칭한다. 예를들어 회원 정보를 관리하는 프로그램을 만드는 경우, 실제 회원 정보를 인덱싱하는 것이… [본문 읽기]
Xcode Debugging tips
엑스코드(Xcode)를 사용하면서 여러가지 유용하게 사용해왔던 기능들을 간단히 정리해보았다. 본 글에서는 잘 사용하지 않아서 모르고있지만 유용하게 사용될 수 있는 기능위주로 설명을 할 것이고 실제 디버거를 이용한 프로그램에대한 디버깅 방법은 다음 글에… [본문 읽기]
Objective-C Tips from WWDC 2013
애플 WWDC2013, Session 228에 소개된 내용들 중 iOS나 Mac 개발시 자주쓰일만한 팁들을 추려내서 간단히 정리해보았다. 서브스크립팅(subscripting) 사용하기 Modern Objective-C 문법이 적용되면서 NSDictionary나 NSArray같은 foundation 데이터 구조객체들은 서브스크립팅을 이용하여 다음과같이 간결하게… [본문 읽기]
iOS 타이틀레이블 위치 강제 조정
iOS 네비게이션바(Navigationbar)의 좌우 툴바버튼이 폭 균형이 맞지 않을경우, 타이틀 레이블의 중앙 정렬이 한쪽으로 쏠리면서 좋지 않게 보인다. 이를 방지하여 레이블을 강제로 중앙 정렬하기 위해서 다음과 같은 방법들이 있으니 상황에따라서 적절히… [본문 읽기]