본문 바로가기
[Effective Objective-C] #8 객체의 동등 비교를 이해하라 [Effective Objective-C] #8 객체의 동등 비교를 이해하라 출처 : Effective Objective-C -== 연산자를 사용하면 포인터 값을 비교한다.두 객체가 같은지 비교하려면 NSObject 프로토콜에 정의되어 있는 isEqual: 메서드를 사용해야 한다. -몇몇 객체는 이미 같은 클래스인지 확인된 두 객체를 비교하는 특별한 동등 확인(equality-checking) 메서드들을 제공한다. -다음 두 메서드는 NSObject 프로토콜의 핵심 동등 비교 메서드이다.- (BOOL)isEqual:(id)object;- (NSUInteger)hash; 위 두 메서드는 NSObject 클래스에 기본적인 구현이 되어 있다.구현 내용은 두 객체가 같은 객체일 뿐 아니라 포인터도 정확히 같아야.. 2017. 8. 9.
[Effective Objective-C] #7 인스턴스 변수에 내부에서 접근할 때는 직접 접근하라. [Effective Objective-C] #7 인스턴스 변수에 내부에서 접근할 때는 직접 접근하라. 출처 : Effective Objective-C -인스턴스 변수를 읽을 때는 직접 접근하고, 쓸 때는 프로퍼티를 사용하는 방법을 강력하게 추천한다. -인스턴스 변수에 직접 접근하는 방법이 확실히 빠르다.이 방법은 Objective-C 의 메서드 호출(dispatch)를 사용하지 않는다.컴파일러는 객체의 인스턴스 변수가 저장된 메모리에 직접 접근하는 코드를 만들어 낼 것이다. -직접 접근하는 방법은 세터에 정의된 메모리 관리 시멘틱을 무시한다. -인스턴스 변수에 직접 접근하면 키-값 관찰(key-value observing:KVO) 알림이 발생하지 않을 것이다.이는 기대하는 객체의 동작 방식에 따라 문제가.. 2017. 7. 28.
[Objective-C] 카테고리 개념 ( Category ) [Objective-C] 카테고리 개념 ( Category ) http://soooprmx.com/wp/archives/2436#disqus_thread -기존에 정의된 어떤 클래스를 쉽게 확장할 수 있게 해준다.카테고리를 적용하면, 이 녀석을 사용하는 녀석은 물론 상속받는 녀석까지 확장된 기능을 사용할 수 있다. -왜 이름이 카테고리냐하면...범용적으로 사용되는 Class 를 확장해서 사용을 한다고 생각을 한다면, 이 기능 저 기능 다 쑤셔넣어서 유지보수가 어려운 코드가 될 수 있다.이 녀석을 SomeClassA, SomeClassA+Network, SomeClass+Graphic 과 같이 카테고리화해서 확장해서 사용하는 것을 목적으로 설계되었기 때문에, 이 녀석을 카테고리라고 부른다. -header .. 2017. 7. 18.
[iOS Study] 자동 회전, 팝오버 컨트롤러, 모달 뷰 컨트롤러 [iOS Study] 자동 회전, 팝오버 컨트롤러, 모달 뷰 컨트롤러 출처 : 아론 힐리가스의 iOS 프로그래밍 -이 장에서는 아래의 주제를 다룬다. 장치 의존적인 코드를 작성하는 방법과 장치의 종류에 따라 테스트하는 방법 회전, 팝오버 컨트롤러, 모달 뷰 컨트롤러 -iOS 에서는 방향을 장치방향 (device orientation) 과 인터페이스 방향(interface orientation) 두 가지로 구분한다. -장치 방향은 장치 표면이나 후면에서 정방향, 뒤집힌 상태, 왼쪽 회전, 오른쪽 회전인지에 따른 물리적 방향을 나타낸다.UIDevice 클래스의 orientation 프로퍼티를 통해 장치의 방향에 접근할 수 있다. -인터페이스 방향은 실행 중인 프로그램의 프로퍼티이다. UIInterfaceOr.. 2016. 3. 5.
[iOS Study] UIGestureRecognizer 와 UIMenuController [iOS Study] UIGestureRecognizer 와 UIMenuController 출처 : 아론 힐리가스의 iOS 프로그래밍 -때때로 핀치나 스와이프와 같은 제스처를 만들기 위해 특정 패턴의 터치를 감지해야 한다.이 때 UIGestureRecognizer 인스턴스를 사용할 수 있다. -UIGestureRecognizer 는 뷰의 방식에 따라 처리되는 터치를 가로챈다. UIGestureRecognizer 가 특정 제스처를 인식하면 선택한 객체에 메시지를 보낸다. -UIGestureRecognizer 자체는 인스턴스를 만들 수 없다.대신에 UIGestureRecognizer 는 많은 하위 클래스를 가지며 그 각각은 특정 제스처를 인식하는 역할을 한다. UIGestureRecognizer 하위 클래스.. 2016. 2. 25.
[iOS Study] 터치 이벤트와 UIResponder [iOS Study] 터치 이벤트와 UIResponder 출처 : 아론 힐리가스의 iOS 프로그래밍 -UIView 는 UIResponder 의 하위 클래스로서 각각 다른 터치 이벤트를 처리할 네 개의 메소드를 재정의할 수 있다. - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; -화면을 .. 2016. 2. 24.
[iOS Study] UITableView 와 UITableViewController [iOS Study] UITableView 와 UITableViewController 출처 : 아론 힐리가스의 iOS 프로그래밍 -UITableView 는 여러 행을 가질 수 있는 단일 열에 데이터를 보여준다. -UITableView 의 dataSource 는 UITableViewDataSource 프로토콜을 따르는 한 어떠한 Objective-C 객체든 될 수 있다. -UITableViewController 클래스의 인스턴스는 뷰 컨트롤러, 데이터 소스, 델리게이트의 세 가지 역할을 다 할 수 있다. -UITableViewController 는 UIViewController 의 하위 클래스이기 때문에 view 프로퍼티를 가진다.UITableViewController 의 view 는 언제나 UITable.. 2016. 2. 20.
[iOS Study] 델리게이션과 텍스트 입력 [iOS Study] 델리게이션과 텍스트 입력 출처 : 아론 힐리가스의 iOS 프로그래밍 -UITextField 인스턴스는 사용자가 텍스트를 수정할 수 있게 해준다. -UIResponder 는 UIKit 프레임워크에 존재하는 추상 클래스이다.다음 세 클래스는 UIResponder 의 하위 클래스이다. UIView, UIViewController, UIApplication UIResponse 는 이벤트를 제어하는 메소드들을 정의한다.이벤트에는 터치 이벤트, 흔들기와 같은 모션 이벤트, 재생/정지와 같은 원격 제어 이벤트 등이 있다.하위 클래스들은 이런 이벤트에 응답하기 위해 각각에 따라 이들 메소드를 재정의한다. -UIWindow 는 다른 이벤트들에 응답할 객체를 가리키는 퍼스트 리스폰더 (first re.. 2016. 2. 19.
[iOS Study] 뷰 컨트롤러 [iOS Study] 뷰 컨트롤러 출처 : 아론 힐리가스의 iOS 프로그래밍 -뷰 컨트롤러는 UIViewController 의 하위 클래스 인스턴스이다.뷰 컨트롤러는 뷰 계층구조를 관리한다.뷰 컨트롤러는 계층구조를 구성하는 뷰 객체들을 만들고 뷰 객체와 관련된 이벤트를 제어하고, 윈도우에 뷰 계층구조를 추가하는 역할을 한다. -UIViewController 의 하위 클래스는 중요한 프로퍼티를 하나 상속받는다. @property (nonatomic, strong) UIView *view; 이 프로퍼티는 UIView 인스턴스를 가리킨다.뷰 컨트롤러의 View 가 윈도우의 하위뷰로 추가되면, 뷰 컨트롤러의 뷰계층 전부가 윈도우에 추가된다. -뷰 컨트롤러의 view 는 화면에 보여줄 필요가 있을 때까지 만들어지.. 2016. 2. 18.
반응형