오후 4:17 2008-09-30
cocoa basic #1
조경민 bro@shinbiro.com neri.cafe24.com
====================================================================
hello world!
------------------------------------------------------------
int main ( int argc, const char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSLog(@"Hello World"); // printf 유사
[pool release];
return 0;
}
동적 배열 사용하기
------------------------------------------------------------
NSMutableArray
int main ( int argc, const char *argv[])
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
NSMutableArray *arr = [[NSMutableArray alloc] init];
[arr addObject: @"string1"];
int iCount = [arr count];
NSString* ps = [arr objectAtIndex: 0];
NSLog (@"Array description: %@ \n", arr );
[arr release]
[pool release];
return 0;
}
해쉬맵을 필요로 한다면 NSMutableDictionary를 사용
윈도우 프로그래밍 기초
------------------------------------------------------------
윈도우 클릭 시 Quartz 윈도우 서버 (윈도우 매니저)는 눌린 윈도우를 알아낸 후 관련된 NSApp 프로그램에게 이벤트를 알려준다.
NSWindow 안에 NSView가 속할 수 있다. (자식윈도우)
Nib : Interface Builder (리소스 에디터)로 생성한 윈도우 배치 리소스 파일 (MFC의 res 유사)
아웃렛: Interface Builder에서 윈도우에 생긴 버튼을 관리하기 위한 인스턴스 변수 (MFC 다이얼로그에 붙은 버튼 관리 위한 클래스 위자드 CButton 생성하는 것과 같음)
액션: 버튼 클릭 등 이벤트 핸들러 함수
아울렛 생성시 만일 에디트 컨트롤 생성하면 MyController.h에 다음 처럼 추가됨.
IBOutlet NSTextField *textField;
Autorelease Pool
------------------------------------------------------------
객체의 참조카운터를 내리는 과정 release 또는 autorelease
올리는 과정 retrain
만일 내가 생성한 객체가 아닌 인자로 받은 객체를 release하면 안된다.
만일 인자로 보내줄 때 retrain해서 참조를 늘려줬다면 받아서 쓰고 release를 한다.
free나 dealloc을 호출하지 않는다.
NSWindow라면 newTitle 객체와 title을 공유하지 않기 위해 아래처럼 할 수 있다.
- (void)setTitle: (NSString *)newTitle
{
[title autorelease];
title = [newTitle copy];
}
아래는 원치 않는 결과 나올 수 있음.
NSMutableString *foo = [NSMutableString stringWithCString:"foo"];
[myWindow setTtitle:foo];
[foo appendString:@"bar"]; // 타이틀이 foobar가 됨.
'KB > iphone/mac' 카테고리의 다른 글
[iPhone SDK] ViewController 관련.. (0) | 2008.10.02 |
---|---|
[iPhoneSDK] 버튼 클릭하기 (0) | 2008.09.30 |
Obj-C 간단한 C++ 비교 사용 법 (0) | 2008.09.30 |
cocoa å (0) | 2008.09.30 |
xcode 유용한 개발 단축키 (0) | 2008.09.29 |