1. Objective-C
Foundation Kit(1)
By Changhoon Park
Objective-C
http://www.wawworld.me
Last Update : 2011. 08. 28
11년 10월 12일 수요일
2. 범위를 나타내는 구조체
typedef struct _NSRange {
unsigned int location;
unsigned int length;
} NSRange;
location = 17
1 5 10 15 20 25
O b j e t i v e - C i s a c o o l l a n g u a g e
length = 4
2
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSRange
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
3. 초기화
NSRange range;
range.location = 17; NSRange range = {17, 4};
range.length = 4;
NSRange range = NSMakeRange (17, 4);
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSRange
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
4. 기하학 관련 타입
typedef struct _NSPoint {
float x;
float y;
} NSPoint;
NSMakePoint()
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSPoint
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
5. 기하학 관련 타입
typedef struct _NSSize {
float width;
float height;
} NSSize;
NSMakeSize()
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSSize
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
6. 기하학 관련 타입
typedef struct _NSRect {
! NSPoint origin;
! NSSize size;
} NSRect;
NSMakeRect()
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSRect
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
7. 문자열 만들기
클래스 메소드
(Class Method)
+ (id) stringWithFormat: (NSString*) format, ...;
팩토리 메소드 (Factory Method)
새 객체를 만들기 위해 사용되는 클래스 메소드
Foundation Kit 유용한 타입
문차열 처리 클래스
클래스 메소드
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
8. 사용 예 및 결과
NSString *height;
height = [NSString stringWithFormat:
@"Your height is %d feet, %d inches", 5, 11];
“Your height is 5 feet, 11 inches”
Foundation Kit 유용한 타입
문차열 처리 클래스
클래스 메소드
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
9. 인스턴스 메소드
(Instance Method)
- (unsigned int) length;
Foundation Kit 유용한 타입
문차열 처리 클래스
크기 문제
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
10. 사용 예
unsigned int length = [ height length ]
if ( [ height length ] > 35 ) {
! NSLog(@"wow, you're really tall!");
}
Foundation Kit 유용한 타입
문차열 처리 클래스
크기 문제
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
11. 리시버(메시지를 전달받는 객체)와
인수로 전달된 문자열 비교
- (BOOL) isEqualToString: (NSString*)aString;
YES 또는 NO 값 반환
Foundation Kit 유용한 타입
문차열 처리 클래스
비교 정책
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
12. 사용 예
NSString *thing1 = @"hello 5";
NSString *thing2;
thing2 = [NSString stringWithFormat:@"hello %d", 5];
// 주의thing1 == thing2 는전혀다른이야기!
if( [thing1 isEqualToString: thing2]) {
NSLog(@"They are the same!");
}
Foundation Kit 유용한 타입
문차열 처리 클래스
비교 정책
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
13. - (NSComparisonResult) compare: (NSString*) string;
typedef enum _NSComparisonResult {
NSOrderedAscending = -1,
NSOrderedSame,
NSOrderedDescending
} NSComparisonResult;
Foundation Kit 유용한 타입
문차열 처리 클래스
비교 정책
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
14. 사용 예
[@"zoinks" compare: @"jinkies"]
NSOrderedDescending
[@"fnord" compare: @"fnord"]
NSOrderedSame
Foundation Kit 유용한 타입
문차열 처리 클래스
비교 정책
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
15. - ( NSRange ) rangeOfString: (NSString *)string
options:(NSStringCompareOptions)mask
- NSCaseInsensitiveSearch : 대소문자를 무시하고
두 문자열을 비교
- NSLiteralSearch : 대소문자를 구분하여 두 문자열을 비교
- NSNumericSearch : 숫자문자를 숫자 그 자체로 인식
( Filename9.txt < Filename20.txt < Filename100.txt )
Foundation Kit 유용한 타입
문차열 처리 클래스
대소문자 비교
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
16. - ( BOOL ) hasPrefix: (NSString *) string;
- ( BOOL ) hasSuffix: (NSString *) string;
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 포함
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
17. NSString *filename = @”draft-chapter.pages”;
if([filename hasPrefix:@”draft”]) {
! NSLog(@”It has draft word”);
}
if([filename hasSuffix:@”.mov”]) {
! NSLog(@”It has mov word”);
}
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 포함
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
18. 사용 예
NSString NSMutableString
내용의 변경 불가능 (immutable) 내용의 변경 가능 (mutable)
글자 찾기 및 비교 등 가능 글자 제거 및 추가 가능
NSString의 서브클래스
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 변경
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
19. 생성 및 예제
+ ( id ) stringWithCapacity: (unsigned)capacity;
NSMutableString *string;
string = [NSMutableString stringWithCapacity: 42];
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 변경
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
20. 새 문자열 추가
- ( void ) appendString: (NSString*)string;
- ( void ) appendFormat: (NSString *) format, ...;
// 문자열 길이 42까지
NSMutableString *string = [NSMutableString stringWithCapacity: 50];
[string appendString: @"Hello there"]; // 문자열 만듬
[string appendFormat: @"human %d!", 39]; // 이어서 문자열 붙임
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 변경
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
21. 문자열 제거
- ( void ) deleteCharactersInRange: (NSRange)range;
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 변경
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
22. 문자열 제거 예제
NSMutableString *friends;
friends = [NSMutableString stringWithCapacity: 50];
[friends appendString: @"James BethLynn Jack Evan"];
NSRange jackRange;
// Jack 이라는 글씨가 있는 범위 찾음
jackRange = [friends rangeOfString: @"Jack"];
jackRange.length++; // Jack 글씨 뒤에 한칸도 포함
// Jack이 있는 범위 삭제!
[friends deleteCharactersInRange: jackRange];
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 변경
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
23. 문자열 생성
+ ( id ) stringWithFormat: (NSString *) format, ....;
NSString *string;
string = [ NSString stringWithFormat:@"jo%dy", 2];
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 변경
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
24. 문자열 생성
+ ( id ) stringWithFormat: (NSString *) format, ....;
NSString *string;
string = [ NSString stringWithFormat:@"jo%dy", 2];
Foundation Kit 유용한 타입
문차열 처리 클래스
문자열 변경
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
25. 순서를 가지는 객체를 담는 클래스 ( 배열 )
C의 기본타입은 담을 수 없음 ( int, float, enum, struct, pointer, ..)
nill ( 0, NULL 값)을 저장할 수 없음
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSArray
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
26. 객체 생성
+ (id)arrayWithObject:(id)anObject;
NSArray *array;
array = [NSArray arrayWithObjects:@"One", @"Two",
@"Three", @"Four", nil];
배열의 끝임을 나타냄
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSArray
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
27. 자주 사용하는 함수
현재 배열에 들어있는 객체의
수를 반환
- (unsigned) count;
- (id)ObjectAtIndex:(unsigned int) index;
index 에 있는 객체를 반환
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSArray
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
28. 사용 예
int i;
for(i=0; i < [array count]; i++ ) {
NSLog(@”index %d has %@.”,
i, [array objectAtIndex: i]);
}
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSArray
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
29. 사용 예
int i;
for(i=0; i < [array count]; i++ ) {
NSLog(@”index %d has %@.”,
i, [array objectAtIndex: i]);
}
[array objectAtIndex:208000];
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSArray
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
30. +(id) arrayWithCapacity: (unsigned) numItems;
-(void) addObject: (id) anObject;
-(void) removeObjectAtIndex: (unsigned) index;
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSMutableArray
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
31. 필요
index를 잘못 사용하면 Range Exception 발생
enumerator를사용하면순차적으로각원소를추출할수있음
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
Enumeration
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
32. 사용 예
NSEnumerator *enumerator;
enumerator = [array objectEnumerator];
while( thingie = [enumerator nextObject] ) {
NSLog(@"I found%@", thingie);
}
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
Enumeration
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
33. 사용 예
키워드와 그 정의의 모음
주어진 key (보통 NSString 객체)에 대한 값 (임의의객체)을 저장
많은 데이터에 저장할 경우 NSArray를 사용해서 순차검색 하는 것 보
다 수백 배 더 빠를수 있음
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSDictionary
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
34. 사용 예
Tire *t1 = [Tire new];
Tire *t2 = [Tire new];
Tire *t3 = [Tire new];
Tire *t4 = [Tire new];
NSDictionary*tires;
tires = [NSDictionary dictionaryWithObjectsAndKeys:
! ! t1 @”front-left” t2 “front-right”
! ! t3, @”back-left”, t4, @”back-rignt”, nil];
Tire *tire = [tires objectForKey: @”back-right”];
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSDictionary
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
35. 사용 예
NSMutableDictionary*tires;
tires = [NSMutableDictionarydictionary];
// 혹은 +(id) dictionaryWithCapacity: (unsigned
int)numItems
[tires setObject: t1 forKey: @”front-left”];
[tires setObject: t2 forKey:@”front-right”];
[tires setObject: t3 forKey: @”back-left”];
[tires setObject: t4 forKey: @”back-right”];
…
[tires removeObjectForKey: @”back_left”];
Objective-C
Foundation Kit 유용한 타입
문차열 처리 클래스
NSMutableDictionary
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일
36. 파일찾기
1. 08-01 FileWalker 참고 - 홈 디렉터리에서 .jpg 파일을 찾고 목록을
출력하는 프로그램
2. NSString, NSArray, NSEnumerator / NSFileManager,
NSDictionaryEnumerator 사용
3. p185를 참고하여 빠른 이너머레이션으로 수정해볼 것
4. 수정한 부분과 스샷을 아지트에 올리기
Foundation Kit 유용한 타입
문차열 처리 클래스
실습
Objective-C
컬렉션
By Changhoon Park
http://www.wawworld.me
11년 10월 12일 수요일