본문 바로가기
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #25 ~ #32 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #25 ~ #32 출처 : Effective Objective-C #25 : 서드 파티 클래스에는 반드시 카테고리 이름을 접두어로 붙이라 자신이 소유하지 않은 클래스에 카테고리를 추가할 때는 항상 카테고리 이름에 접두어를 붙이라. 자신이 소유하지 않은 클래스에 카테고리를 추가할 때 카테고리의 메서드에도 접두어를 항상 붙이라. #26 : 카테고리에는 프로퍼티를 사용하지 말라 데이터를 캡슐화하는 모든 프로퍼티 선언은 메인 인터페이스 파일에서 하라. 클래스 확장 카테고리를 제외하고 카테고리 내에 프로퍼티를 선언하기보다는 접근자 메서드를 사용하라. #27 : 클래스 확장 카테고리를 이용해 상세.. 2017. 9. 26.
[Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24 [Effective Objective-C] 목차와 요약을 통해 한 눈에 알아보는 Effective Objective-C #17 ~ #24 #17 : description 메서드를 구현하라 인스턴스를 설명하는 유용한 문자열을 제공하려면 description 메서드를 구현하라. 객체가 출력하는 내용을 디버깅할 때 좀 더 자세해지길 원한다면 debugDescription 을 구현하라. #18 : 가변 객체보다는 불변 객체를 사용하라 가능하다면 객체를 불변(immutable)으로 만들라. 프로퍼티를 내부에서 설정할 수 있게 하려면 클래스 확장 카테고리로 읽기 전용 속성을 읽기-쓰기로 확장하라. 가변 컬렉션을 프로퍼티로 노출하기보다는 컬렉션에 포함된 객체를 조작할 수 있는 메서드를 제공하라. #19 : 명확하고 .. 2017. 9. 8.
[Effective Objective-C] #19 명확하고 일관된 작명법을 사용하라 [Effective Objective-C] #19 명확하고 일관된 작명법을 사용하라 출처 : Effective Objective-C -오브젝티브-C 의 이름 짓는 법은 좀 더 장황한 이름을 사용하기 때문에 훨씬 명확하다.메서드와 변수 이름에 첫 문자를 소문자로 쓰는 카멜 표기법을 사용하고,클래스 이름은 항상 첫 문자가 대문자인 카멜 표기법을 사용한다. 이름에는 항상 두세 문자의 접두어를 사용한다. 메서드 이름 짓기 -긴 메서드 이름을 사용하는 것을 두려워하지 말라.메서드 이름이 메서드가 하는 일을 정확히 표현할 만큼만 길게 만들라.그러나 극도로 긴 이름을 쓰지는 말아야 한다.메서드 이름은 간결하고 정확해야 한다. -NSString 클래스는 좋은 작명 관례 지침을 다르는 최고의 예다. -다음 몇 가지 법칙.. 2017. 8. 30.
[Effective Objective-C] #18 가변 객체보다는 불변 객체를 사용하라 [Effective Objective-C] #18 가변 객체보다는 불변 객체를 사용하라 출처 : Effective Objective-C -프로퍼티를 기본 설정으로 두면 읽기 쓰기(read-write) 인데 이는 클래스를 가변적(mutable)로 만든다. -컬렉션이 가변 객체를 저장하고 집합(컬렉션)에 포함된 객체가 변형된다면, 집합의 내부 데이터 구조는 쉽게 불일치(inconsistent) 상태가 될 것이다.객체는 필요할 때만 가변적으로 만드는 것을 추천한다. -불변 객체를 만든다는 것은 프로퍼티를 외부에 읽기 전용으로 만든 다음 필요할 때만 데이터를 노출하는 것을 의미한다. -클래스를 불변으로 만들려면 모든 프로퍼티에 readonly 속성을 추가하면 된다.이제 무엇이든 프로퍼티 값을 변경하려 하면 컴파.. 2017. 8. 21.
[Effective Objective-C] #17 description 메서드를 구현하라 [Effective Objective-C] #17 description 메서드를 구현하라 출처 : Effective Objective-C -디버깅할 때 객체의 내용을 출력하면 유용할 때가 있다.내용을 출력하는 방법 중 하나는 객체의 모든 프로퍼티를 출력하는 로깅 코드를 작성하는 것이지만, 다음과 같이 하는 것이 더 일반적인 방법이다.NSLog(@“object = %@“, object); 문자열이 로그로 기록될 때 object 는 description 메시지를 받을 것이다. -여러분이 만든 클래스에서 NSObject 기본 구현의 description 이 호출될 것이다.이 메서드는 NSObject 프로토콜에 정의되어 있지만, NSObject 클래스가 구현한다.많은 메서드가 NSObject 프로토콜에 속해있는.. 2017. 8. 20.
[Effective Objective-C] #7 인스턴스 변수에 내부에서 접근할 때는 직접 접근하라. [Effective Objective-C] #7 인스턴스 변수에 내부에서 접근할 때는 직접 접근하라. 출처 : Effective Objective-C -인스턴스 변수를 읽을 때는 직접 접근하고, 쓸 때는 프로퍼티를 사용하는 방법을 강력하게 추천한다. -인스턴스 변수에 직접 접근하는 방법이 확실히 빠르다.이 방법은 Objective-C 의 메서드 호출(dispatch)를 사용하지 않는다.컴파일러는 객체의 인스턴스 변수가 저장된 메모리에 직접 접근하는 코드를 만들어 낼 것이다. -직접 접근하는 방법은 세터에 정의된 메모리 관리 시멘틱을 무시한다. -인스턴스 변수에 직접 접근하면 키-값 관찰(key-value observing:KVO) 알림이 발생하지 않을 것이다.이는 기대하는 객체의 동작 방식에 따라 문제가.. 2017. 7. 28.
[Effective Objective-C] #6 프로퍼티를 이해하라 [Effective Objective-C] #6 프로퍼티를 이해하라 출처 : Effective Objective-C -프로퍼티는 객체가 포함한 데이터를 캡슐화하는 방법을 제공하는 Objective-C 의 기능이다. -인스턴스 변수는 항상 접근자 메서드(accessor method)를 통해 접근한다.Objective-C 2.0 배포판에 프로퍼티라는 기능으로 포함되었다.이 기능으로 개발자는 접근자 메서드들을 자동으로 생성하라고 컴파일러에 알려줄 수 있다.프로퍼티는 점(.) 문법이라는 새로운 방법을 제공한다.점 문법 덕분에 클래스에 저장된 데이터에 접근하는 방법이 좀 덜 장황해졌다. -@interface EOCPerson : NSObject{@public NSString *_firstName; NSString.. 2017. 7. 27.
[Effecitve Objective-C] #2 헤더에 헤더를 포함하는 것을 최소화하라 [Effecitve Objective-C] #2 헤더에 헤더를 포함하는 것을 최소화하라 출처 : Effective Objective-C - Objective-C 는 C, C++ 처음 헤더 파일과 구현 파일을 사용한다. Objective-C 로 클래스를 작성할 때 쓰는 표준적인 방법은 클래스 이름 뒤에 확장자가 .h 인 헤더 파일과 .m 인 구현 파일을 생성하는 것이다. // header #import @interface EOCPerson : NSObject @property (nonatomic, copy) NSString *nane @end // implementation #import “EocPerson.h" @implementation EOCPerson @end - Foundation.h 는 Obje.. 2017. 7. 17.
[iOS Study] 코어 데이터 [iOS Study] 코어 데이터 출처 : 아론 힐리가스의 iOS 프로그래밍 -데이터를 로컬에 저장하는 방법은 “아카이빙” 또는 “코어 데이터” 를 사용한다. -아카이빙의 가장 큰 결점은 전부 다냐 아무것도 아니냐는 특성에 있다.아카이브 안의 내용에 접근하려면 전체 파일을 언아카이브해야 한다.변경사항을 저장하려면 전체 파일을 다시 쓰기 해야 한다.반면 코어 데이터(Core Data)는 저장된 객체의 일부만 가져올 수 있다.그리고 어떤 객체를 변경한다면 파일의 해당 부분만 갱신할 수 있다.이러한 점진적 가져오기, 업데이트, 삭제, 삽입은 파일시스템과 메모리 사이를 오가는 많은 모델 객체를 가지는 경우 앱의 급격한 성능 향상을 가져올 수 있다. -코어 데이터는 객체-관계형 매핑 ( object-relatio.. 2016. 3. 25.
반응형