본문 바로가기

프로그래밍/iphone

Cocoa's Framework - Foundation, Application Kit

코코아의 대표적인 프레임워크인 Foundation 과 Application Kit에 관한 설명.

Foundation
이 Foundation Framework 는 cocoa의 기본 클래스 레이어를 정의한다. apple 문서에 따르면 이러한 Foundation Framework 와 Application kit 의 클래스간의 구분법은 User interface 의 유무이다.
즉, User Interface에 객체가 나타나지 않거나 지원되지 않는다면 Foundation 클래스라고 한다.

Foundation Classes
이 클래스는 NSObject 클래스에 기반을 두고 있다.

아래 이미지는 클래스의 상속과 논리적 분류가 되어있다.


그림:A cc cfg objc foundation.gif
여기서 보이는 Value 객체들은 여러 타입의 데이터를 제공한다. NSData 같은 경우는 bite stream 을 제공하기 위한 객체 스토리지를 제공한다. NSValue, NSNumber 같은 경우에는 스칼라값을 제공.
NSDate, NSCalendarData, NSTimeZone, NSCalendar, NSDateComponents, NSLocale 등의 클래스는 이름에서 알수 있드시 시간,날짜,달력,장소등을 나타내는 객체다. 각각의 속성을 나타내는 메소드를 제공해준다.

strings 객체 그룹중 NSString 은 NULL 문자로 끝나는 배열을 가진 데이터를 위해서 객체 스토리지를 제공한다. 이 객체는 UTF-16,UTF-8등의 문자열 인코딩을 가지며, 변환을 지원한다. 또한 무자열 검색과 비교등을 가능케 하는 메소드와 파일시스템 경로를 다루는 메소드또한 제공한다.
NSScaner 객체는 NSString 객체를 이용한 단어, 숫자들을 parsing 할수 있다.

Collections
이 그룹의 객체들은 정렬된 객체의 저장, 로드하는 객체들이다. 
NSArray 의 경우 0으로 시작하는 인덱싱을 지원하고, NSDictionary 의 경우 키벨류패어를 이용한다. NSEnumerator 객체의 경우는 Collections 의 각 요소들을 순차적접근이 가능하게 한다. 이러한 Collections 은 리스트를 잘 나타내게 할수 있다.


그림:A cc cfg objc foundation2.gif

OS services 그룹은 Foundation 클래스를 OS수준으로 접근이 가능하게 해준다. NSProcessingInfo는 프로그램 환경의 쿼리가 가능해지면, NSHost 는 네트워크상에서 Host System과 address를 제공한다. NSTimer같은 경우 타 객체에 특정시간에 메세지를 보낼수 있게 한다. NSRunLoop는 프로그램의 입력소스를 조절할수있다. 




그림:A cc cfg objc foundation3.gif