본문 바로가기

프로그래밍/iOS

nil, Nil, null, NSNull의 차이 nil - Objective-c object의 부재를 나타낼 때 사용. NSString * strObject = nil; Nil - Objective-c class의 부재를 나타낼 때 사용. - Objective-c class: 자신이 속한 클래스의 정보를 가진 구조체. Class myClass = Nil NULL - c-pointer의 부재(주소가 0) 및 C나 C++의 변수 및 객체에 사용 int *intPtr = NULL; NSNull - NSObject를 상속받는 객체로 collection item을 null로 설정할 필요가 있을때 사용 [myArray addObject:[NSNull null]]; if ([myArray objectAtIndex:0] == [NSNull null]) Swift에서.. 더보기
new VS alloc init new - alloc init의 단축 명령으로 객체를 메모리에 할당하고 초기화 하는 메소드까지 한번에 호출 - 인자를 사용하는 초기화 메소드(initWith-)의 사용이 필요한 경우에는 대체 불가 // 같은 역할을 함. NSObject *object = [NSObject new]; NSObject *object = [[NSObject alloc] init]; // initWithFrame은 new가 대체할 수 없음. UIView *myView = [UIView alloc] initWithFrame:CGRectZero]; alloc init - alloc은 객체를 메모리에 할당하는 역할 - init은 메모리에 할당한 객체를 초기화 하는 역할 - (init-) 메소드는 메모리가 할당된 자기 자신을 없애고 새.. 더보기
frame VS bounds 위치과 크기를 표현하는 구조체 - CGPoint : 위치를 나타내는 구조체 - CGSize : 크기를 나타내는 구조체 - CGRect : 위치와 크기를 모두 나타내는 구조체 구조체 종류 구성 값 CGPoint CGFloat x; CGFloat y; CGSize CGFloat width; CGFloat height; CGRect CGPoint origin; CGSize size; frame - 부모 view를 기준으로 하는 자기 자신(view)의 좌표 - frame을 변경할 경우 뷰의 위치와 크기를 모두 변경할 수 있음 bounds - 자기 자신(view)를 기준으로 한 자기 자신(view)의 좌표 - bounds를 변경할 경우 뷰의 크기만 변경할 수 있음< 그림1. image에 대한 frame과 boun.. 더보기