본문 바로가기

URL Encoding URL Encoding (URL 인코딩) URL로 쓸 수 있는 문자열은 알파벳, 숫자, 몇개의 특수문자가 전부이다.한글을 URL로 쓸 수 없다. 한글을 쳐도 되는데? 하는 것은 웹 브라우저에서 자동으로 인코딩 해주기 때문이다. 문자열을 URL에서 사용할 수 있도록 인코딩 하려면?메소드를 사용함. (UTF-8을 기본으로 사용하므로 따로 명시 하지 않아도 됨.) 기존에 문자열 인코딩에 사용되던 stringByAddingPercentEscapesUsingEncoding 메소드는 OS 10.11부터 사용안함. (NSUTF8StringEncoding이라는 인자를 따로 줬어야 했음 - 불편...) URL을 문자열로 디코딩 하려면? 메소드를 이용하면 됨. ex)#import int main(int argc, cons..
== == 원시 타입에서 값 비교를 할 때는 ==가 둘이 서로 같은 값이냐?! 를 의미하지만,포인터 타입에서 ==를 쓰면 주소가 같은지를 본다. 즉 값이 아닌 같은 객체냐?를 봄. ==> 객체의 내용 비교는 어떻게 하나?isEqual: 메소드를 이용.선언 형태 : -(BOOL)isEqual:(id)object; ==> 사용 예시if( [str1 isEqual:str2] )NSLog(@"예아");elseNSLog(@"노우"); 프레임워크의 클래스를 사용하는 경우라면 isEqual 메소드가 구현돼있기 떄문에 그냥 쓰면 되지만,커스텀 클래스에서 사용하려면 isEqual 메소드를 작성해줘야 함.
상속 클래스 상속 (inheritance)상속을 통해 부모의 특성을 그대로 자식 클래스에서 사용할 수 있도록 함.==> 자식 클래스에서는 부모 클래스의 멤버 변수, 메소드 등을 사용할 수 있음. 그래서 어떻게 사용되느냐?==> 여러 클래스들의 공통적인 부분을 부모 클래스로 묶어놓고, 부모 클래스를 상속 받아서 필요한 부분만 재정의, 추가해서 사용. 예를 들면)고양이, 오리, 염소 클래스를 만들고 각각의 울음소리를 출력하고자 할 때, 소리만 다를 뿐 '울음소리를 출력한다'라는 기본 틀은 동일함에도, 상속이라는 개념을 사용하지 않는다면 똑같은 함수를 각각의 클래스에 개별적으로 다 만들어야함. ==> '동물'이라는 부모 클래스를 만들고 '울음소리'라는 메소드를 정의하고,==> 자식 클래스에서는 부모를 상속받아 필요..
인스턴스 메소드 & 클래스 메소드 인스턴스 메소드와 클래스 메소드클래스 내부 메소드의 종류를 알아보자. 인스턴스 메소드 클래스 메소드 선언의 차이 - 로 시작 + 로 시작 메시지 리시버 객체 클래스 멤버 변수 접근 여부 가능 불가능 [인스턴스 메소드 예제]인스턴스 메소드는 클래스 멤버 변수 접근 가능.-> 멤버 변수를 활용한 메소드는 인스턴스 메소드로 선언. (선언 예시)-(void)my_method; (사용 예시)Test *ins= [[Test alloc] init]; //메시지 리시버가 객체이므로 객체 선언과 초기화 필요.[ins my_method]; //객체를 통해 호출. [클래스 메소드 예제] 클래스 메소드는 클래그 멤버 변수에 접근 불가.-> 멤버 변수가 필요하지 않은 메소드는 클래스 메소드로 선언. (선언 예시)+(void)m..
클래스 작성 클래스 생성 [클래스 파일 생성]프로젝트를 먼저 생성하고, NewFile -> Cocoa Class 선택 Class 이름 설정. / 상속받을 클래스(default : NSObject) / 클래스 작성 언어 선택 (.h) 파일과 (.m)파일이 생성됨. 클래스 선언부 : 헤더 파일(.h)클래스 구현부 : 구현 파일(.m)일반적으로 헤더파일은 공개가 되고, 구현 파일은 공개되지 않는 경우도 많음.선언부 : 클래스의 행위를 알리는 역할 --> 그러므로 공개가 돼야겠지? [클래스 선언 형식]@interface 클래스이름 : 부모클래스{멤버 변수 (멤버변수는 선언부 혹은 구현부 중 한군데에 선언)}-(반환형)인스턴스메소드이름:(자료형)파라미터 파라미터레이블:(자료형)파라미터;+(반환형)클래스메소드이름:(자료형)파라..
nil 포인터 nil포인터아무것도 가리키지 않는 빈(empty) 포인터다. nil, Nil, NULL도 똑같이 (void*)0로 정의되어 있지만, 단지 의미를 구분해서 쓴다.nil : null instance pointerNil : null class pointerNULL : 일반적인 C에서의 NULL 포인터. nil에 메소드를 호출하면1. 반환값이 없는 메소드라면 무시되고,2. 반환값이 있는 메소드라면 반환값은 0또는 nil이다. ex)NSString *str = nil;NSLog(@"Len : %lu", (unsigned long)[str length]);==> 반환값은 0 NSLog(@"Upper Case String : %@", [str uppercaseString]);==> 반환값은 nil 정상적으로 처리되지..
메소드 메소드 메소드 : 객체가 수행할 클래스 내부에 정의된 '행위'메세지 : 객체에서 메소드를 호출할 때 객체가 동작을 수행하도록 보내는 요청. 리시버 : 메세지를 받아서 메세지에 맞는 동작을 수행하는 객체.센더 : 메세지를 보내는 객체. ------------------------[메소드 호출]: 대괄호식 [] 안에 객체 띄우고 메소드이름을 써주면 됨.ex) [str1 length] : str1객체의 length메소드 호출.------------------------ [메소드 반환 타입 정리]C언어의 원시 타입정수형char, short, int, long 실수형float, double, long double 부울형BOOL (TRUE, FALSE가 아니라 YES, NO를 사용) NS 원시타입NSIntegeri..
클래스와 객체 클래스와 객체 객체지향 개념이 들어간다. 클래스는 붕어빵 틀과 같다. 객체가 어떻게 생기고 구성 요소에 어떤 것들이 있는지 틀만 만들어 놓은 상태다. 클래스를 이용하여 객체를 선언하면, 기본적인 구조와 구성요소가 동일한 객체들이 생성된다.붕어빵이 하나씩 만들어지는 것이다. 모양과 구성요소는 같으나 팥을 넣느냐, 크림을 넣느냐가 다를 수 있고, 또 얼마만큼 넣느냐도 차이가 있을 수 있다. 하지만 이렇게 구성요소의 '값'만 살짝 다를 뿐. 전부 같은 틀에서 찍혀나온 붕어빵이다. 게임에서 각각의 유저들도 동일한 클래스에서 찍혀나온 각각의 객체다. 캐릭터들은 전부 힘,지능,행운,체력,생명력,마나 등의 구성요소는 동일하게 가진다. 하지만 어떤 직업을 택하느냐, 또는 어떤 스킬을 올리느냐에 따라 그 값은 객체별로 ..