Programming 24

NSDictionary

NSDictionary 딕셔너리는 키(key)와 값(value)으로 구성됨. 구별의 척도이므로 각 키 값은 유일해야함. value 값은 같아도 됨. 값은 id타입으로 들어가므로 배열도 줄 수 있음. 딕셔너리 생성 방법 2가지 예시. 1)NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKey:@"value", @"key", @"value2", @"key2", nil];이렇게 값, 키, 값, 키로 생성 (순서에 유의) 2)좀 더 편하게 생성해보자.NSDictionary *dic2 = @{@"key":@"value", @"key2":@"value2"};훨씬 간편하고 헷갈리지도 않음. 딕셔너리 개수 확인. (키&값이 한 세트가 1개임)-(NSUInteger..

Objective-C 기초 2019.02.15

가변형 배열(MutableArray)

가변형 배열(MutableArray) #import int main(int argc, const char * argv[]) { @autoreleasepool { //배열 생성 NSMutableArray *my_array = [NSMutableArray array]; //array메소드로 배열 생성. [my_array addObject:@1]; [my_array addObject:@"hello"]; NSLog(@"\nCheck my mutableArray : %@",my_array); [my_array removeObjectAtIndex:0]; NSLog(@"\ncheck array : %@", my_array); } return 0; } ==> 결과 :2019-02-15 13:11:09.416725+09..

Objective-C 기초 2019.02.15

가변 문자열

가변 문자열 문자열이 자주 바뀌는 경우는 가변문자열(NSMutableString)을 사용하는 것이 좋음.NSString 클래스를 상속받음. -> NSString 클래스 기능을 전부 사용할 수 있음. 버퍼를 이용함. --> 필요한 버퍼의 크기를 알고 있다면 따로 명시해주면 성능에 도움됨. 1) 버퍼 크기 명시 메소드-(id)initWithCapacity:(NSUInteger)capacity; +(id)stringWithCapacity:(NSUInteger)capacity; 문자열 변화는 문자열이 변경되므로 void를 반환 2)덧붙이기3)중간에 삽입 4)삭제

Objective-C 기초 2019.02.14

파일로 쓰기, 파일 읽기

문자열을 파일로 쓰기, 파일 읽기 1) 파일로 쓰기NSString 클래스의 writeToFile 메소드를 사용하여 NSString 문자열을 파일로 출력. ex)#import int main(int argc, const char * argv[]) { @autoreleasepool { //문자열을 파일로 저장하고, 저장된 파일에서 문자열을 다시 읽어오는 코드 작성 NSString *str = @"ABCD"; NSString *dirpath = @"/Users/night-ohl/Desktop"; NSString *filepath = [dirpath stringByAppendingPathComponent:@"hello.txt"]; __autoreleasing NSError *error; BOOL ret = [s..

Objective-C 기초 2019.02.14

URL Encoding

URL Encoding (URL 인코딩) URL로 쓸 수 있는 문자열은 알파벳, 숫자, 몇개의 특수문자가 전부이다.한글을 URL로 쓸 수 없다. 한글을 쳐도 되는데? 하는 것은 웹 브라우저에서 자동으로 인코딩 해주기 때문이다. 문자열을 URL에서 사용할 수 있도록 인코딩 하려면?메소드를 사용함. (UTF-8을 기본으로 사용하므로 따로 명시 하지 않아도 됨.) 기존에 문자열 인코딩에 사용되던 stringByAddingPercentEscapesUsingEncoding 메소드는 OS 10.11부터 사용안함. (NSUTF8StringEncoding이라는 인자를 따로 줬어야 했음 - 불편...) URL을 문자열로 디코딩 하려면? 메소드를 이용하면 됨. ex)#import int main(int argc, cons..

Objective-C 기초 2019.02.14

상속

클래스 상속 (inheritance)상속을 통해 부모의 특성을 그대로 자식 클래스에서 사용할 수 있도록 함.==> 자식 클래스에서는 부모 클래스의 멤버 변수, 메소드 등을 사용할 수 있음. 그래서 어떻게 사용되느냐?==> 여러 클래스들의 공통적인 부분을 부모 클래스로 묶어놓고, 부모 클래스를 상속 받아서 필요한 부분만 재정의, 추가해서 사용. 예를 들면)고양이, 오리, 염소 클래스를 만들고 각각의 울음소리를 출력하고자 할 때, 소리만 다를 뿐 '울음소리를 출력한다'라는 기본 틀은 동일함에도, 상속이라는 개념을 사용하지 않는다면 똑같은 함수를 각각의 클래스에 개별적으로 다 만들어야함. ==> '동물'이라는 부모 클래스를 만들고 '울음소리'라는 메소드를 정의하고,==> 자식 클래스에서는 부모를 상속받아 필요..

Objective-C 기초 2019.02.09

인스턴스 메소드 & 클래스 메소드

인스턴스 메소드와 클래스 메소드클래스 내부 메소드의 종류를 알아보자. 인스턴스 메소드 클래스 메소드 선언의 차이 - 로 시작 + 로 시작 메시지 리시버 객체 클래스 멤버 변수 접근 여부 가능 불가능 [인스턴스 메소드 예제]인스턴스 메소드는 클래스 멤버 변수 접근 가능.-> 멤버 변수를 활용한 메소드는 인스턴스 메소드로 선언. (선언 예시)-(void)my_method; (사용 예시)Test *ins= [[Test alloc] init]; //메시지 리시버가 객체이므로 객체 선언과 초기화 필요.[ins my_method]; //객체를 통해 호출. [클래스 메소드 예제] 클래스 메소드는 클래그 멤버 변수에 접근 불가.-> 멤버 변수가 필요하지 않은 메소드는 클래스 메소드로 선언. (선언 예시)+(void)m..

Objective-C 기초 2019.02.09

클래스 작성

클래스 생성 [클래스 파일 생성]프로젝트를 먼저 생성하고, NewFile -> Cocoa Class 선택 Class 이름 설정. / 상속받을 클래스(default : NSObject) / 클래스 작성 언어 선택 (.h) 파일과 (.m)파일이 생성됨. 클래스 선언부 : 헤더 파일(.h)클래스 구현부 : 구현 파일(.m)일반적으로 헤더파일은 공개가 되고, 구현 파일은 공개되지 않는 경우도 많음.선언부 : 클래스의 행위를 알리는 역할 --> 그러므로 공개가 돼야겠지? [클래스 선언 형식]@interface 클래스이름 : 부모클래스{멤버 변수 (멤버변수는 선언부 혹은 구현부 중 한군데에 선언)}-(반환형)인스턴스메소드이름:(자료형)파라미터 파라미터레이블:(자료형)파라미터;+(반환형)클래스메소드이름:(자료형)파라..

Objective-C 기초 2019.02.08