본문 바로가기
프로그래밍 놀이터/iOS

[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24

by 돼지왕 왕돼지 2017. 9. 8.
반응형


 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24


data source protocol, debugDescription, delegate, description, description 메서드를 구현하라, immutable, naming convention, nscopying, nscopying protocol, NSCopying 프로토콜을 이해하라., nserror, nsmutablecopying, nsmutablecopying protocol, optional, Private, Private Method, private 카테고리, protocol, _, 가변 객체, 가변 객체보다는 불변 객체를 사용하라, 가변 컬렉션, 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라., 깊은 복사, 데이터 소스 프로토콜, 델리게이트, 델리게이트 메서드, 델리게이트 패턴, 디버깅, 명확하고 일관된 작명법을 사용하라, 복사 메서드, 불변 객체, 비트필드 구조체, 선택적 메서드, 애플 예약어, 얕은 복사, 에러 모델, 예외, 오브젝티브-C 에러 모델을 이해하라, 외부 파라미터, 일관, 읽기-쓰기 확장, 접두어, 조각, 카테고리, 카테고리를 사용해 클래스를 관리 가능한 다수의 조각으로 나누라., 클래스, 클래스 확장 카테고리, 타입 축약, 표준 작명 관례, 프라이빗 메서드, 프라이빗 메서드 이름에 접두어를 사용하라, 프로퍼티



#17 : description 메서드를 구현하라


     인스턴스를 설명하는 유용한 문자열을 제공하려면 description 메서드를 구현하라.


     객체가 출력하는 내용을 디버깅할 때 좀 더 자세해지길 원한다면 debugDescription 을 구현하라.





#18 : 가변 객체보다는 불변 객체를 사용하라


     가능하다면 객체를 불변(immutable)으로 만들라.


     프로퍼티를 내부에서 설정할 수 있게 하려면 클래스 확장 카테고리로 읽기 전용 속성을 읽기-쓰기로 확장하라.


     가변 컬렉션을 프로퍼티로 노출하기보다는 컬렉션에 포함된 객체를 조작할 수 있는 메서드를 제공하라.





#19 : 명확하고 일관된 작명법을 사용하라


     잘 맞고 올바르다고 느낄 수 있는 인터페이스를 생성하기 위해 오브젝티브-C 의 표준 작명 관례를 따르라.


     메서드 이름은 간결하지만 정확하고, 문장처럼 왼쪽에서 오른쪽으로 읽을 수 있게 만들라.


     타입 축약을 이용해 메서드 이름을 짓지 말라.


     가장 중요한 점은 메서드 이름을 여러분의 코드 내에서나, 아니면 다른 것과 함께 사용할 때나 항상 일관되게 짓는 것이다.





#20 : 프라이빗 메서드 이름에 접두어를 사용하라


     프라이빗 메서드 이름에 접두어를 붙이면 퍼블릭 메서드와 쉽게 구별할 수 있다.


     메서드 접두어로 ‘_’ 를 사용하는 것은 피하라.

     애플이 사용을 예약했기 때문이다.





#21 : 오브젝티브-C 에러 모델을 이해하라


     전체 앱을 종료시키는 심각한 에러에 대해서만 예외를 사용하라.


     심각하지 않은 에러는 에러를 처리하는 델리게이트 메서드를 제공하거나 NSError 객체를 외부 파라미터로 제공하라.





#22 : NSCopying 프로토콜을 이해하라.


     객체를 복사할 필요가 있으면 NSCopying 프로토콜을 구현하라.


     자신의 객체가 가변, 불변 둘 다 될 수 있으면 NSCopying 과 NSMutableCopying 프로토콜 둘 다 구현하라.


     복사가 얕은 복사인지 깊은 복사인지 결정하라.

     그리고 가능하다면 얕은 복사를 하라.


     자신이 만든 객체가 깊은 복사가 필요하다면 깊은 복사 메서드를 추가하라.




#23 : 객체 간 통신에 델리게이트와 데이터 소스 프로토콜을 사용하라.


     객체가 다른 객체에 특정 이벤트를 보내고 받을 필요가 있을 때 인터페이스(데이터를 주고 받는 규약)로 델리게이트 패턴을 사용하라.


     델리게이트가 지원해야 하는 인터페이스를 정의하는 프로토콜의 메서드는 선택적 메서드로 정의하라.


     객체가 다른 객체로부터 데이터를 가져와야 할 때 델리게이트 패턴을 사용하라.

     이 델리게이트 패턴을 특히 ‘데이터 소스 프로토콜’ 이라고 한다.


     필요하다면 프로토콜에서 어떤 메서드가 응답하는지 여부를 캐싱하기 위해 비트필드 구조체를 구현하라.





#24 : 카테고리를 사용해 클래스를 관리 가능한 다수의 조각으로 나누라.


     카테고리를 사용해 클래스 구현 파일을 다수의 관리하기 좋은 조각으로 나누라.


     Private 이라는 카테고리를 만들어 private 메서드의 자세한 구현을 숨기라.




반응형

댓글