본문 바로가기
[Objective-C] 메시지 송신 패턴 [Objective-C] 메시지 송신 패턴 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 15. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 15.1. 앱과 실행 반복 * 15.1.1. 실행 반복 -마우스 클릭 등의 이벤트를 OS에서 받아 그에 따른 처리를 하는 루틴 실행을 반복하는 부분이 있는데, 이것을 실행 반복(run loop) 또는 이벤트반복이라고 부른다. -GUI 를 갖춘 Cocoa 앱에서 실행 시작 이후에는 반드시 하나의 실행 반복이 시작된다.이것을 메인 실행 반복이라고 부른다.동시에 앱 동작과 리소스 관리를 하는 객체가 생성되는데, 이것이 Ma.. 2018. 1. 7.
[Objective-C] 추상 클래스와 클래스 클러스터 [Objective-C] 추상 클래스와 클래스 클러스터 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 11. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 11.1. 추상 클래스 * 11.1.1. 추상 클래스란 -Objective-C 에는 인스턴스를 생성할 수 있는 일반 클래스와 추상 클래스를 구별해서 정의하는 특별한 언어적 구조가 없다.Objective-C 에서 추상 클래스라는 용어는 개념적으로만 존재한다. -다른 객체지향 언어는 virtual, abstract 등의 키워드를 사용해서 추상 클래스를 나타내는 수단이 있다.Objective-C 에서는 추상 클.. 2018. 1. 3.
[Objective-C] NSObject 클래스와 런타임 시스템 [Objective-C] NSObject 클래스와 런타임 시스템 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 8. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 8.1. NSObject 클래스 * 8.1.1. 루트 클래스의 역할 -런타임 시스템은 Objective-C 용 운영체제 같은 것으로, 객체 생성, 해제에 따른 메모리 영역 관리와 송신된 메시지에 대응하는 메서드 검색 등을 한다. -보통은 프로그램에서 런타임 시스템 기능을 직접 사용하지 않는다.이런 기본 기능은 루트 클래스인 NSObject 에 있는 메서드로 제공된다.다시 말해 루트 클래스는 런타임 .. 2017. 12. 29.
[Objective-C] 선언 프로퍼티 [Objective-C] 선언 프로퍼티 출처 : OS X 구조를 이해하면서 배우는 Objective-C Chap 7. Notice : 정리자(돼지왕 왕돼지)가 remind 하고 싶은 내용이나 모르는 내용 기반으로 정리하는 것이기 때문에 구체적인 내용은 책을 사서 보시기를 권장드립니다. 7.1. 프로퍼티란 * 7.1.1. 프로퍼티를 사용한 프로그래밍 -선언 프로퍼티 관련 기능은.. 접근자 메서드 생성 인스턴스 변수를 지정해서 전형적인 접근자 메서드를 생성할 수 있다. 게터와 세터 모두 생성할지 게터만 생성할지 지정할 수 있다. 대응하는 접근자를 스스로 정의할 수도 있다. 인스턴스 변수 생성 프로퍼티를 인스턴스 변수에 없는 이름으로 선언하면 접근자 메서드와 동시에 자동으로 인스턴스 변수도 생성된다. 접근자 .. 2017. 12. 28.
[Effective Objective-C] #35 좀비를 이용해 메모리 관리 오류를 디버깅하라 [Effective Objective-C] #35 좀비를 이용해 메모리 관리 오류를 디버깅하라 출처 : Effective Objective-C -메모리 관리 오류를 디버깅하는 것은 매우 어려운 일이다.할당 해제된 객체에 메시지를 보내는 일은 예상할 수 있듯이 전혀 안전하지 못하다.그러나 때때로 그것은 동작하기도 하고 동작하지 않기도 하는데 이는 객체가 사용했던 메모리를 덮어 썼느냐에 달려있다.메모리가 재사용되었는지 알 수 있는 방법은 없다.그로 인해 크래시가 가끔 일어난다.메모리의 일부분만 재사용되는 경우도 있는데 이 때 객체의 일부분은 여전히 유효하다.또한 순전히 운으로 또 다른 유효한 살아 있는 객체가 메모리를 덮어쓸 수도 있다.이 경우 런타임은 새로운 객체에 메시지를 보낼 것이고 객체는 응답을 할 .. 2017. 9. 29.
[Effective Objective-C] #23 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라 [Effective Objective-C] #23 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라 출처 : Effective Objective-C -프로토콜은 자바의 인터페이스와 비슷한 기능이다.오브젝티브-C 는 다중 상속을 지원하지 않는다.그래서 프로토콜이 클래스가 구현해야 할 메서드 집합을 정의할 방법을 제공한다.프로토콜은 대부분 델리게이트 패턴을 구현하기 위해 사용한다. -프로토콜을 배워서 사용하면 코드에 사용 방법을 훌륭하게 문서화 할 수 있어 유지 보수하기 훨씬 쉬운 코드를 만들 수 있다. -카테고리 역시 오브젝티브-C 의 핵심 기능 중 하나다.카테고리는 상속을 사용해야 하는 다른 언어와는 달리 클래스를 상속받지 않고 메서드를 추가할 수 있게 하는 기능이다.이 기능은 오브젝티브-C .. 2017. 9. 3.
[iOS] NS_AVAILABLE_IOS  와 NS_DEPRECATED_IOS 의 의미는? [iOS] NS_AVAILABLE_IOS 와 NS_DEPRECATED_IOS 의 의미는? http://iosdevelopertips.com/best-practices/eveything-you-need-to-know-about-ios-and-os-x-deprecated-apis.html -NS_AVAILABLE_IOS(5_0) 위의 접미어는 이 함수는 iOS 5.0 에 새로 들어와서 이 버전 이후에서만 유효하다는 것을 이야기한다.만약 이 함수가 iOS 5.0 이하 버전에서 불린다면 crash 가 발생한다. -NS_DEPRECATED_IOS(2_0, 6_0) 위의 접미어는 2개의 버전을 표시하고 있다.첫번째 버전은 introduced version 이고, 두번째 버전은 deprecated version 이다.. 2017. 6. 17.
[iOS Study] 델리게이션과 텍스트 입력 [iOS Study] 델리게이션과 텍스트 입력 출처 : 아론 힐리가스의 iOS 프로그래밍 -UITextField 인스턴스는 사용자가 텍스트를 수정할 수 있게 해준다. -UIResponder 는 UIKit 프레임워크에 존재하는 추상 클래스이다.다음 세 클래스는 UIResponder 의 하위 클래스이다. UIView, UIViewController, UIApplication UIResponse 는 이벤트를 제어하는 메소드들을 정의한다.이벤트에는 터치 이벤트, 흔들기와 같은 모션 이벤트, 재생/정지와 같은 원격 제어 이벤트 등이 있다.하위 클래스들은 이런 이벤트에 응답하기 위해 각각에 따라 이들 메소드를 재정의한다. -UIWindow 는 다른 이벤트들에 응답할 객체를 가리키는 퍼스트 리스폰더 (first re.. 2016. 2. 19.
반응형