티스토리 뷰
클래스 정의를 다루던 도중 새 메서드를 추가하고 싶을 때가 있을거란다.
내 생각에는 내가 만든 클래스는 그냥 추가하면 될것 같은데... 예제라서 그렇게 한거 같고.
남이 만들어서 추가할수 없는 녀석들에 대해서 적용하는 용도일듯.
다른 분들은 엄청나게 강력하다고 이야기들을 하신다... 왜 나만 이렇게 부정적이지. 아무튼.
일단 구현방식은 너무나도 쉽다. New File에서 Category를 선택하면 된다.
이 것을 구현하고 나서 할짓은,
import문에 들어가 있던 부분의 header파일의 이름을 변경하여 주면된다.
흠... 글쓰는 아직까지도 엄청나게 어마어마하게 상속보다 강력한것을 못 느끼고 있음...
한가지 장점을 따지자면, 모태가 되는 클래스가 존재할 경우에, 이 부분들에 대해서 각각의 모듈을 작성할수 있을듯.
소스 꼬이고 그러는일도 별로 없을것 같긴한데... 흠... 잘못하면 같은 기능들을 막 다 집어 넣을듯.
일반 선언 클래스와 비교를 한다.
장점을 찾지 말고 필요할때가 있다면 사용하는것이 맞을듯...
Class 상속 받을 경우. 상속받아서 사용하는 클래스는 대략 이런식이다.
인터페이스 파일 (BaseClass.h) #import <Foundation.h> @interface BaseClass : [Super Class] { 인스턴스 변수 } 메소드 @end | 구현부 파일(BaseClass.m) @implementation BaseClass 실제구현 @end |
카테고리를 사용할 경우. 형태가 Ext일 경우.
인터페이스 파일(BaseClass+Ext.h) #import "BaseClass.h" @interface BaseClass(Ext) - (void) oops; @end | 구현부 파일(BaseClass_Ext.m) #import "BaseClass+Ext.h" @implementation BaseClass(Ext) - (void) oops { } @end |
'Mobile > iOS' 카테고리의 다른 글
ARC 에러 (0) | 2014.03.05 |
---|---|
nil이란? (0) | 2014.03.03 |
@protocol (0) | 2014.02.28 |
동적 형을 다루는 메소드 (0) | 2014.02.28 |
메소스 정의시 +,-의 차이 (0) | 2014.02.27 |
- Total
- Today
- Yesterday
- Spring
- go
- Xcode
- ios
- CentOS
- github
- Java
- rxswift
- php
- Gradle
- Windows
- tomcat
- docker
- golang
- SWIFT
- Python
- war
- MySQL
- centos8
- git
- windows10
- cocoapods
- intellij
- android
- Kotlin
- ubuntu
- Codable
- Linux
- nodejs
- enum
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |