관점지향프로그래밍, Aspect Oriented Programming(AOP)이란? ‘Aspect’ 란 어떤 프로그램의 공통적인 기능(common feature)이 프로그램 전반에 걸쳐 영향을 주는 형태를 지칭한다. 예를들어 회원 정보를 관리하는 프로그램을 만드는 경우, 실제 회원 정보를 인덱싱하는 것이… [본문 읽기]
카테고리 글 목록: Objective-C / Swift
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)의 좌우 툴바버튼이 폭 균형이 맞지 않을경우, 타이틀 레이블의 중앙 정렬이 한쪽으로 쏠리면서 좋지 않게 보인다. 이를 방지하여 레이블을 강제로 중앙 정렬하기 위해서 다음과 같은 방법들이 있으니 상황에따라서 적절히… [본문 읽기]
NSView debug drawing
NSView debug drawing NSView의 레이아웃 계층(layout hierachy)이 어떻게 구성되어있는지 비주얼라이즈해서 보고싶은경우 NSShowAllViews Preference값을 YES로 셋팅해준 후 어플리케이션을 다시 실행하면 된다. 터미널의 커맨드라인에서 다음 명령을 실행하면 해당 번들ID를 가진 앱의 설정값을… [본문 읽기]
NSButton으로 이미지버튼 만들기
맥OS의 코코아(cocoa)프레임웍에서 NSButton을 이미지버튼(image button)으로 사용할때 아래 속성을 제대로 설정하지 않으면, 클릭했을때 투명이미지 처리가 제대로 안되는 문제가 발생한다. [button setButtonType:NSMomentaryChangeButton]; iOS의 UIButton에서 커스텀 버튼을 만들고 이미지를 설정해서 사용하는 것처럼 동일하게… [본문 읽기]
NSSplitView 구현 팁
맥용 코코아(Cocoa) 어플리케이션을 만들다보면 NSSplitView가 많이 사용되는데 이와 관련된 몇가지 팁들을 소개해본다. NSSplitView 디바이더(divider) 숨기기 NSSplitView를 서브클래싱 한 후 다음 메서드를 오버라이드하여 디바이더의 두께를 0으로 만들어 숨길 수 있다. -(CGFloat)dividerThickness… [본문 읽기]
싱크로나이즈드 스크롤 구현하기
여러개의 NSScrollView를 사용할때 스크롤뷰들 중에서 하나만 스크롤해도 여러개의 스크롤 뷰가 동시에 따라 움지이는 싱크로나이즈드 스크롤(Synchronized scroll)을 구현하기 위한 방법을 소개한다. 스크롤 이벤트 감지 NSScrollView의 스크롤이벤트를 받아오기 위해서는 NSScrollView가 가진 contentView의… [본문 읽기]
NSTimer 백그라운드 진입시 동작 분석
iOS에서 특정 시간주기로 특정 메서드을 호출하기위해 NSTimer를 사용하게 된다. 이때 앱이 백그라운드(background)로 진입할때, 그리고 잠시 후 다시 포어그라운드(foreground)로 돌아올경우 예약되어 사용중인 NSTimer가 어떻게 동작하는지 살펴보도록 하자. 기본적으로 타이머의 실행 주기는… [본문 읽기]
GCD 튜토리얼
지난 포스트에서 블록(block)의 동작에 대해서 분석해보았는데, 이런 블록들을 이용하여 멀티스레드 프로그래밍을 손쉽게 할 수 있는 방법을 제공하는 GCD (Grand Central Dispatch) 에대해 알아보도록 하자. 본 포스트의 내용은 1 의 내용을… [본문 읽기]