인스턴스가 생성되는 과정 ──────────────────── 인스턴스화, 즉 기존의 클래스로부터 인스턴스를 생성하기 위한 흐름은 다음과 같습니다. (1) 인스턴스를 저장하기 위한 변수를 선언한다. (2) 인스턴스를 생성한다. 인스턴스를 저장하는 변수의 선언 먼저 인스턴스 변수의 선언입니다. 여기서는 int형이나 float형 같이 C언어에 원래부터 있던 자료형과 Objective-C 객체의 데이터를 구별하기 위해서 전자를 기본 자료형, 후자를 객체형이라고 부르겠습니다. 인스턴스를 저장하기 위해서는 기본 자료형 변수의 선언과 마찬가지로 사전에 객체형 변수를 선언해야 합니다. 이 때 다음과 같은 형식으로 사용합니다. 기본 자료형 변수의 선언과 달리 변수 앞에 *가 붙어 있다는 점에 주의해야 합니다. (Obj..
인스턴스 메소드와 클래스 메소드 ────────────────────────── 클래스에 준비되어 있는 메소드는 인스턴스 메소드와 클래스 메소드의 2종류로 크게 나눌 수 있습니다. 인스턴스 메소드는 인스턴스에 대해 실행하는 메소드 입니다. 인스턴스 메소드의 실행 [인스턴스 메시지] 예를 들어, 다음 예에서는 myself라는 인스턴스의 이름을 구하는 name 메소드를 실행하고 있습니다. name1 = [myself name]; 이것은 개별 인스턴스에 대해서 실행하고 있으므로 인스턴스 메소드입니다. 이에 비해, 특정 인스턴스에 의존하지 않는 메소드를 클래스 메소드라고 부릅니다. 클래스 메소드는 다음과 같이 실행할 수 있습니다. 클래스 메소드의 실행 [클래스 메시지] 다음에 상세히 설명하겠지만 인스턴스를 생성..
메소드의 호출 방법에 대한 예비지식 ─────────────────────────── Objective-C의 메소드 호출 방법은 조금 특수합니다. Java나 C++ 같은 일반적인 객체지향 언어를 경험하신 분들은 익숙해지기 전까지 조금 어렵게 느껴질 수도 있습니다. Objective-C의 메소드 호출 방식은 다음과 같습니다. 메시지 방식 [객체 메시지] 전체를 대괄호 []로 에워싸고 객체와 메시지는 사이에 공백을 두어 구분합니다. 이렇게 하면 Receiver인 객체로 메시지가 보내지고, 대응하는 메소드가 호출됩니다. 메시지의 반환값을 변수에 대입할 때는 다음과 같이 합니다. 메시지의 반환값을 변수에 대입 변수 = [객체 메시지] 이 때 메시지가 게터 메소드처럼 인수를 가지지 않는 메소드인 경우에는 메소드의..
NSLog 함수에 대해서 ──────────────── NSLog(@"Hello, World!"); NSLog 함수의 인수로는 Objective-C의 문자열을 전달합니다. 여기에서 Objective-C의 문자열이라는 것은 정확하게 NSString 클래스의 인스턴스 입니다. 원래는 어떤 클래스에서 그 오브젝트인 인스턴스를 생성하기 위해서는 보통 alloc 메소드 드으이 전용 메소드를 실행할 필요가 있습니다. 다만 문자열은 빈번하게 사용하기 때문에 다음과 같은 형식으로도 NSString 클래스의 인스턴스를 간단히 생성할 수 있도록 되어있습니다. NSLog, NSString과 같이 Cocoa 환경의 클래스와 함수의 이름은 'NS'로 시작합니다. 이는 Mac OS X의 전신인 'NeXTSTEP'의 약자입니다. ..
최초로 호출되는 main함수 ───────────────────── 함수란 일련의 처리를 모아서 '함수명'으로 호출할 수 있도록 한 것입니다. 이 때 함수에 넘겨주는 값을 인수라고 합니다. 그리고 함수가 처리한 결과를 호출한 쪽으로 되돌려주는 값을 반환값이라고 합니다. 함수는 다음과 같은 형식으로 정의합니다. 반환값의 타입 함수명(인수 리스트){ 함수의 내용 return 반환값; } 즉, 함수의 내용은 '{'와 '}' 사이에 기술하는 것입니다. C언어에서는 프로그램을 실행하면 제일 먼저 main이라는 이름의 함수가 호출된다는 규칙이 있습니다. Objective-C에서도 마찬가지 입니다. Sample.m을 살펴보면 다음과 같이 main 함수가 기술되어 있습니다. int main (int argc, cons..
소스파일의 구조 ───────────── Xcode에서 커맨드라인 어플리케이션(Foundation) 프로젝트를 처음 생성하면 나오는 샘플코드로 소스파일인 .m 파일의 구조를 살펴보겠습니다. 처음 프로젝트를 생성하면 함께 생성되는 .m 소스파일의 샘플코드 입니다. 위 코드에서 화살표로 표시한 1 부분의 #import로 시작되는 부분은 헤더 파일을 읽어 들이는 부분입니다. 그리고 화살표로 표시한 2 부분이 프로그램의 본체 main 함수입니다. 자 그럼 import한 헤더파일과 메인함수에 대해서 알아보겠습니다. 헤더파일의 Import ─────────────── 프레임워크의 메소드와 라이브러리의 함수 선언 등이 포함된 파일을 헤더파일(head file)이라고 합니다. 소스 파일 내에서 메소드나 함수를 호출하면..
가비지 컬렉션에 대해서 ────────────────── 프로그램을 실행할 때 종종 문제가 되는 것은 메모리상에 확보한 영역을 언제 해제하느냐입니다. Objective-C와 같은 객체지향 언어에서는 오브젝트를 생성하면 메모리상에 그 영역이 만들어집니다. 오브젝트를 계속해서 생성하다보면, 사용할 수 있는 메모리 영역은 그만큼 줄어들게 됩니다. 그렇기 때문에 필요가 없어진 오브젝트는 프로그래머가 적절하게 해제해서 메모리를 확보해 주어야 합니다. 그렇지 않으면 자림나 차지하고 사용되지 않는 메모리 영역이 계속 증가하게 됩니다. 이런 현상을 메모리 누수(memory leak)라고 합니다. 그래서 고안해 낸 것이 가비지 컬렉션(garbage collection)이라는 기능입니다. 말 그대로 쓰레기를 수집하듯, 불..
이번에 소개드릴 어플리케이션은 맥용 RPG게임 던전헌터 : 얼라이언스 입니다. 맥용 AppStore가 생기면서 여러가지 어플리케이션을 접하기 쉬워져 더욱 맥용 어플리케이션들이 많이 출시되고 있는 와중에 게임로프트에서 아이폰용으로도 출시했던 던전헌터를 맥용으로 출시했습니다. 일단 던전헌터를 플레이하기 위한 시스템 사양은 위 스크린샷에 나와있듯이 OS : OSX 10.6.6 이상 RAM : 2GB 이상 CPU : Intel Core 2 Duo 1.86 Ghz 이상 HDD : 2GB의 여유공간 그리고 온라인플레이를 위한 이더넷 혹은 와이파이 환경이 필요합니다. 그럼 던전헌터를 실행해보겠습니다. 처음엔 아스팔트와 동일하게 게임로프트 로고가 나온후에 잠깐의 로딩 후 위 화면이 나옵니다. 메인메뉴 화면입니다. 싱글..
- Total
- Today
- Yesterday
- iBATIS
- 오블완
- oracle
- Spring
- zero
- Java
- MySQL
- IT
- Spring Framework
- 아이폰
- iOS 개발
- MAC OSX 10.7
- 제이쿼리
- 티스토리챌린지
- JSP
- 아이폰 어플리케이션
- Programming
- iPhone
- Object C
- 자바스크립트
- 오브젝티브 C
- JavaScript
- Objective-C
- tomcat
- SQL
- Objective C
- 오브젝트 C
- 아이폰 개발
- jQuery
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |