본문 바로가기

전체 글

(325)
[Objective-C] 메모리 관리 1. 메모리 관리 함수참조계수 출력 : retainCount참조계수 증가 : retain참조계수 감소 : release 2. 샘플 코드 @interface Car :NSObject-(void)dealloc;@end @implementation Car-(void)dealloc{ NSLog(@"dealloc"); [super dealloc];}@end int main(){ Car* p1 = [[Car alloc] init]; NSLog(@"p1 = %lu",[p1 retainCount]); Car* p2 = p1; NSLog(@"p1 = %lu",[p1 retainCount]); NSLog(@"p2 = %lu",[p2 retainCount]); [p2 retain]; NSLog(@"p1 = %lu",[p1 ..
[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]; //..
[iOS] 다국어가 적용되지 않는 언어를 선택할 시 iOS에서 다국어가 적용되지 않는 언어를 선택할 시 다국어가 적용되있지 않는 언어를 선택할 시 아이폰에서는 설정-일반-언어 및 지역 - 선호하는 언어순서에 있는 가장 위의 언어를 선택해서 보여준다. 따라서 다국어가 적용되어 있지 않은 언어를 선택할 시 특정 언어로 선택하기 위해서는bundle의 특정 lproj파일을 선택하여 다국어를 적용해야 한다. 그에 대한 기술 #undef NSLocalizedString // 기존 NSLocalizedString을 제거 #define NSLocalizedString(key, comment) [[NSBundle mainBundle] localizedStringForKey:(key) replaceValue:(comment)] // 재 정의 - (NSString *)loc..
[iOS] UIImage 회전 함수 자주사용하는 함수인데 이미지 rotation을 받아서 회전하는 함수만 적어두었길래그냥 가져다 쓸 수 있게 함수 형식으로 바꾼 샘플 코드 작성 #pragma mark - rotateImage#define DEGREES_TO_RADIANS(angle) ((angle) / 180.0 * M_PI)/** 오른쪽 90도로 돌리는 함수*/- (UIImage *)rotateImage90:(UIImage *)img{ NSLog(@"rotateImage90:"); CGImageRef imgRef = img.CGImage; CGFloat width = CGImageGetWidth(imgRef); CGFloat height = CGImageGetHeight(imgRef); CGRect bounds = CGRectMake(0..