본문 바로가기

Software/iOS & Objective-C

(23)
Objective C 기초정리 필요한것만 살짝 정리 메시징 문법 [객체 메소드]; ex ) [Receiver Message]; 이와 같은 방식으로 객체에게 메시지를 보내게 된다. 메시지를 보낸다는 것은 객체의 메소드를 호출하는 것을 의미. 인자 넘겨주기 1개 [Receiver Message:23]; 2개 이상 [Receiver Message:23 withOptionA:23 withOptionB:23]; 이때 메소드의 이름은 Message:withOptionA:withOptionB: 가 된다. -> ->다른 객체지향 느낌 표현 Receiver.MessageWithOptionAandOptionB(23, 23, 23); NULL == nil Rectangle *anObject = nil; [anObject description]; nil ..
멀티스레딩 <NSThread> 멀티스레딩은 한 앱의 내부에서 돌고있는 스레드가 다수인 경우를 뜻한다. 하나의 앱은 하나의 프로세스가 돌고 있습니다. 그리고 프로세스 안에는 여러개의 스레드가 돌고있는 구조이다. 스레드는 프로세스보다 낮은 작업 단위이다. 스레드는 코드를 실행하는 흐름이라고 볼 수도 있다. 멀티스레드라 하면 흐름이 여러개라고 보면 되겠다. 앱에는 최소 한개 이상의 스레드가 돌고 있다. 스레드가 없다면 그것은 프로그램으로서 성립이 안된다. 최초의 첫 스레드를 메인 스레드라고 한다. 메인 스레드에서는 많은 일을 한다. 기본적인 앱 내부의 이벤트 처리나 화면 처리를 하기 때문에 메인 스레드가 멈추거나 일시적으로 어는 현상이 있어서는 안된다. = NSThread.h = + (NSThread *) currentThread; 클래스..
메모리 관리 <Objective-C?> 이글은 Naver "맥부기 Cafe의 문씨님의 강좌에서 퍼온글 입니다." Objective-C는 C++과 마찬가지로 C에서 파생된 언어이다. 다만 구조적 특징을 보면 C++보다 Objective-C가 좀더 C에 가깝다. C++은 C에서 메모리 관리를 직접하는 포인터 개념에 충실한 반면 Objective-C는 메모리 관리를 어느정도 대신 해주는 개념을 가지고 있다. 언어를 대체적으로 C나, C++, Objective-C로 세분류로 나누고 보면 일단 C나 C++은 개발하기가 어렵다. 하지만 메모리 관리를 직접할수 있기 때문에 고수가 개발한다면 정말 강력한 앱을 만들수도 있다. Java는 메모리 관리를 신경 안쓰는 언어이다. 덕분에 개발은 편하다. 하지만 메모리 관리하는 가비지컬렉션 대문에 모바일 환경에서는 ..
Xcode & Objective-C - 기초개념 1. 모든 App은 단 하나의 Window만을 가지며 UIView를 통해 View를 꾸미게 된다. 상속을 지원. 메소드 오버라이딩 = 기존의 것 + 추가 (재정의) 메소드 오버로딩 = 메소드의 이름은 같은나 입출력 값의 타입을 다르게 선언 ------------------------------------------------------------------------------------------ 메세징 문법 Objective-C에서는 다음과 같은 방식으로 객체에게 메시지를 보내게 된다. 메시지를 보낸다는 것은 객체의 메소드를 호출하는 것을 의미한다. [Receiver Message] , ex) [self initWithConnection]; 메소드에 인자를 넘겨주는 형식 -> [Receiver Messag..
iPhone 개발 듀토리얼 - Window and view Window and View UIWindow Window는 UIWindow 클래스로 구현되어 있다. iPhone 애플리케이션은 구동시에 UIWindow 객체를 생성하여 사용자에게 화면을 보여주게 된다. Window-Based 애플리케이션으로 프로젝트를 생성하여 코드를 살펴보면, UIWindow 클래스의 인스턴스를 생성하는 부분이 없다. 인터페이스 빌더의 MainWindow.xib 파일에서 UIWindow 인스턴스가 정의되어 있기 때문에 따로 생성하지 않아도 아울렛이나 델리게이트를 통해 사용이 가능하다. 인터페이스 빌더를 사용하지 않고, UIWindow 를 생성하려면 UIApplication의 딜리게이터의applicationDidFinishLaunching 메소드에 다음과 같은 코드를 추가하여야 할 것입니..
네트워크 in iPhone & iPad 아이폰에서 TCP를 이용하는 방법은 다음과 같이 나뉜다. 1. BSD socket API를 이용하는 방법 2. CF Networking 관련 라이브러리를 이용하는 방법 3. NSStream 클래스를 이용하는 방법 BSD socket API는 일반적으로 GCC 환경에서 사용하는 소켓(Socket)과 관련된 API로, 쉽게 말해 기존의 TCP 소켓 프로그래밍 방법을 그대로 이용할 수 있는 것이다. CF Networking 관련 라이브러리는 Cocoa에서 제공하는 네트워킹 관련 API들로, 앞의 BSD socket API를 좀더 쉽게 다듬어 둔 형태라고 본다. 더불러 Run Loop에 대한 동작을 포함함으로써 별개의 스레드(Thread)를 생성하지 않고도 상대적으로 쉽게 소켓 프로그래밍을 할 수 있도록 하고 ..
해킨토시 설치 삽질중... 일단 용어 부터 숙지 하도록: http://x86osx.com/bbs/view.phpid=osxqna&page=1&sn1=& divpage=7&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=21893 먼저 해킨토시를 설치하기 위해선 상당히 피곤하다... 하드웨어를 많이 타기때문에 손댈곳이 이만저만이 아니다. 일단 한대까지 적어 놔야겠다. 1. 처음에 vmware로 설치 하려 했으니 설치중 OS X 이미지 인식불능! ->CPU가 가상화를 지원하지 않기때문이다. 컴퓨터 산지 3년이 되었던가....듀얼코어 가지곤 역부족이었다. 2. 상당히 좋은 본체를 구했다. i7쿼드코어! vmware로 설치하려 했으나 갑자기 오기 발동!! [해킨토시 설치하기로 마음먹음] 이..