본문 바로가기
[Effective Objective-C] #22 NSCopying 프로토콜을 이해하라. [Effective Objective-C] #22 NSCopying 프로토콜을 이해하라. 출처 : Effective Objective-C -오브젝티브-C 에서는 copy 메서드를 이용하여 객체를 복사할 수 있다.자신이 만든 클래스가 복사될 수 있게 하려면 메서드가 하나뿐인 NSCopying 프로토콜을 구현하면 된다.- (id)copyWithZone:(NSZone*)zone -모든 앱이 단일 존(기본 존)을 가진다.그래서 이 메서드를 구현할 때 zone 파라미터는 무시해도 된다. -copy 메서드는 NSObject 내에서 구현되어 있다.그리고 기본 존을 이용해 copyWithZone: 을 호출한다.그냥 copy 를 재정의하고 싶겠지만 꼭 copyWithZone: 을 대신 구현해야 한다.- (id)copyW.. 2017. 9. 2.
[Effective Java] 타입 안전이 보장되는 혼성(heterogeneous) 컨테이너의 사용을 고려하자. [Effective Java] 타입 안전이 보장되는 혼성(heterogeneous) 컨테이너의 사용을 고려하자. - 제네릭은 Set 이나 Map 같은 컬렉션, ThreadLocal 이나 AtomicReference 같은 단일 요소(single-element) 저장 컨테이너에 가장 많이 사용된다. 이 컬렉션들은 컨테이너를 매개변수화 한 것이다. 컨테이너의 특성에 따라 사용 가능한 타입 매개변수의 갯수가 자연스럽게 제한된다. - 타입 안전을 지키면서 더 큰 유연성을 갖기 위해서 ( 예를 들면 nosql 처럼 column 이 상황에 따라 다른 경우 )는 컨테이너 대신 키(key) 를 매개변수화 해주면 된다. - Class 클래스는 1.5부터 제네릭화되었다. 클래스 리터럴 타입은 Class 가 아니고 Class.. 2016. 11. 22.
[iOS Study] 웹 서비스와 UIWebView [iOS Study] 웹 서비스와 UIWebView 출처 : 아론 힐리가스의 iOS 프로그래밍 -NSURL URL 포맷에 웹 프로그램의 위치를 담고 있다. URL 은 여러 웹 서비스를 위해 기본 주소, 통신하고 있는 웹 프로그램, 전달 인자로 구성된다. https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSURL_Class/ -NSURLRequest 웹 서버와 통신할 때 필요한 모든 데이터를 가진다. NSURL 객체와 캐시 정책, 웹 서버의 응답 제한 시간, HTTP 프로토콜을 통해 전달되는 추가 데이터 등을 가진다. NSMutableURLRequest 는 NSURLRequest 의 변경 가능한 .. 2016. 3. 15.
[iOS Study] 오토 레이아웃 : 프로그래밍으로 제약조건 만들기 [iOS Study] 오토 레이아웃 : 프로그래밍으로 제약조건 만들기 출처 : 아론 힐리가스의 iOS 프로그래밍 -애플은 가능한 한 XIB 파일에서 뷰를 만들고 제한하는 것을 추천한다.하지만 코드로 뷰를 만들면 프로그래밍으로 제약 조건을 적용해야 한다. -프로그래밍으로 뷰를 만들기 위해서는 loadView 메소드를 재정의한다.NIB 파일을 로드하여 만들어진 뷰 계층구조에 뷰를 추가하고 제한하려면 viewDidLoad 메소드를 재정의한다. -변환 제약조건(translated constraints)에 관한 코드는 예전 시스템 인터페이스인 오토리사이징 마스크(autoresizing mask)와 함께 동작해야만 한다.iOS 앱은 오토 레이아웃이 도입되기 전에 여러 크기의 화면에 따라 뷰를 조절하기 위해 오토리사.. 2016. 3. 4.
[iOS Study] 오토 레이아웃 소개 [iOS Study] 오토 레이아웃 소개 출처 : 아론 힐리가스의 iOS 프로그래밍 -아이패드와 아이폰 모두에서 실행 가능한 단일 앱을 유니버설 앱(Universal application) 이라 한다. -Deployment info 섹션으로 이동하여 Devices 팝업에서 iPhone 을 Universal 로 변경하면 된다. -절대 좌표 체계는 레이아웃이 깨지기 쉽다.미리 화면 크기를 알고 있다고 가정하기 때문이다. 오토 레이아웃을 사용하여 상대적인 방식으로 뷰들의 레이아웃을 기술할 수 있다.이것은 실행 시에 frames 를 결정하도록 해준다.따라서 frames 의 정의가 프로그램이 실행 중인 장비의 화면 크기를 고려할 수 있도록 한다. -레티나 장비는 비레티나 장비보다 두 배 많은 픽셀을 가지고 있지만.. 2016. 3. 3.
[iOS Study] 뷰와 뷰 계층구조 [iOS Study] 뷰와 뷰 계층구조 출처 : 아론 힐리가스의 iOS 프로그래밍 - 뷰는 UIView 의 인스턴스이거나 그 하위 클래스의 인스턴스이다. 뷰는 자신을 그리는 법을 알고 있다. 뷰는 터치와 같은 이벤트를 처리한다. 뷰는 뷰 계층구조상에 존재한다. 뷰 계층구조의 루트는 앱의 윈도우이다. - iOS 앱은 앱의 모든 뷰의 컨테이너 역할을 하는 UIWindow 인스턴스를 하나 가진다. 윈도우는 앱이 실행될 때 만들어진다. 그리고 윈도우가 만들어지면 그 윈도우에 다른 뷰들을 추가 할 수 있다. - 계층의 모든 뷰는 윈도우를 가지고 자신을 그린다. 뷰는 그 자체를 자신의 CALayer 인스턴스인 레이어에 나타낸다 ( 뷰의 레이어는 비트맵 이미지로 생각할 수 있다. ) 모든 뷰의 레이어들이 화면에 합성.. 2016. 2. 16.
[기초강좌] HTML Blocks - w3schools 번역 [기초강좌] HTML Blocks - w3schools 번역 w3school 의 강좌 내용을 번역한 글입니다. 원문 : http://www.w3schools.com/html/html_blocks.asp HTML element 는 와 으로 그룹화 될 수 있다. HTML Block Elements. 대부분의 HTML element 는 Block level 또는 inline level 로 정의된다. Block level element 는 보통 줄바꿈 후 시작하고, 끝나면 줄바꿈을 추가하여 브라우저에 표시된다. Block level tag 의 예는 , , , HTML Inline Elements Inline Elements 는 보통 줄바꿈 없이 표시된다. Inline level tag 의 예는 , , , The.. 2014. 3. 18.
반응형