본문 바로가기

교육

(93)
[Objective-C] init 1. init객체를 초기화하는 함수init~으로 시작성공하면 자신의 주소 리턴, 실패시 nil 리턴 초기화 할때 변수를 받아서 할 수도 있다.nil포인터에 함수 호출해도 죽지않음 ex) [nil init]부모의 초기화 함수를 부르는경우 부모거(suepr) 먼저 내거(self) 나중 2. 소멸자dealloc부모의 dealloc을 부르는 경우 내거(self) 먼저 부모거(super) 나중 3. 샘플 코드 interface Car :NSObject{ int speed;}-(id)init;-(id)initWithSpeed:(int)spd;-(void)printSpeed;-(void)dealloc;@end @implementation Car-(id)init{ self = [super init]; if (self)..
[Objective-C] target-Action 1. target-Action대상을 지정하여 특정 동작을 취하게 설정함흔히 사용하는 형태는 버튼을 클릭했을때 클릭 함수를 구현하여 동작하게 하는 것objective-C에서 selector문법이 이에 해당된다. 2. 샘플 코드@interface Dialog :NSObject-(void)close;@end @implementation Dialog-(void)close{ NSLog(@"Dialog close");}@end @interface Button:NSObject{ id target; SEL action;}-(void) click;-(void) addTarget:(id)t action:(SEL)a;@end @implementation Button-(void)click{ // 자신이 클릭된 상황을 외부에 ..
[Objective-C] selector 1. Selector변수 선언 : SEL 변수 = @selector(함수이름); 셀렉터를 이용하여 함수 사용 : [클래스 변수 performSelector:@selector(함수이름)];[a performSelector:@selector(go:) withObject:(id)10];[a performSelector:@selector(go:speed:) withObject:(id)10 withObject:(id)10];withObject는 2개까지 지원 2. Selector는 함수 포인터다?제목에서 알 수 있듯이 잘못됌다른 클래스에 같은 이름의 함수가 있을경우 함수포인터라면 다른 주소를 가져야함근데 @selector를 만들때 클래스를 구분할 수 없다.그래서 selector를 가져와 보면 동일한 selecto..
[Objectiv-C] method 1. 함수+함수 : static 멤버 함수, 객체 초기화 없이 바로 클래스 명으로 사용 가능, [클래스명 함수]; c언어: 클래스 명 :: 함수명 자바: 클래스명.함수명-함수 : 멤버 함수, 객체 초기화 후 사용해야함 c언어 : 클래스 변수->함수; 2. 함수 이름:도 함수 이름에 포함 됌 함수 함수 명 -(void) go; go -(void) go:(int)a; go: -(void) go:(int)a speed:(int)s; go: speed: -(void) go:(int)a speed:(int)s sound:(int)snd; go: speed: sound: 3. 오버로딩그런거 안됌go:(int)a;go:(float)a; 위와 같이 선언시 중복 선언 되었다고 에러남 4. 샘플 코드 @interface ..
[Obective-C] Class 1. 선언부@interface 클래스 명 : 상속 받을 클래스 명{ // 내부 변수 선언}// 함수 혹은 property 선언@end // 끝 2. 구현부@implementation 클래스 명// 함수 구현@end // 끝 3. 샘플 코드#import @interface Car : NSObject{// @private // default가 protected int color; int speed;}+(void)foo;-(void)goo;@end @implementation Car+(void)foo{ NSLog(@"foo");}-(void)goo{ NSLog(@"goo");} @endint main(){ [Car foo]; Car * a = [Car alloc]; [a goo]; [a release]; //..