어떤 클래스에 대해 NSCopying 프로토콜을 구현하다보면 allocWithZone: 이라는 메서드에 맞닥뜨리게된다. 객체의 경우 힙(heap)에 할당되는데, 이 힙을 zone으로 나누고 해당 zone별로 메모리를 할당 및 관리하여 메모리 파편화를 막는데 도움을 주기위해 존재하는… [본문 읽기]
카테고리 글 목록: iOS
오토레이아웃 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)의 좌우 툴바버튼이 폭 균형이 맞지 않을경우, 타이틀 레이블의 중앙 정렬이 한쪽으로 쏠리면서 좋지 않게 보인다. 이를 방지하여 레이블을 강제로 중앙 정렬하기 위해서 다음과 같은 방법들이 있으니 상황에따라서 적절히… [본문 읽기]
NSTimer 백그라운드 진입시 동작 분석
iOS에서 특정 시간주기로 특정 메서드을 호출하기위해 NSTimer를 사용하게 된다. 이때 앱이 백그라운드(background)로 진입할때, 그리고 잠시 후 다시 포어그라운드(foreground)로 돌아올경우 예약되어 사용중인 NSTimer가 어떻게 동작하는지 살펴보도록 하자. 기본적으로 타이머의 실행 주기는… [본문 읽기]