아이폰 개발 팁(삼항연산자, 메모리관리)

팁1. 삼항 연산자

A?B:C 의 형태로 사용하는 삼항연산자는 Objective-C 에서도 동일하다. A?B:C 형태로 사용하며 A가 참이면 B, 그렇지 않으면 C가 리턴이 된다.

 

팁2. 메모리 관리, 단 두가지만 기억하면 됩니다. — HeadFirst iPhone Development 에서 발췌

메모리 관리는 큰 앱일 경우 상당히 골치 아픈 문제가 될 수 있습니다. 그래서 애플은 다음과 같은 두 가지 규칙을 정해서, 누가 언제 릴리즈 및 리테인에 대해 책임지는지 체계적으로 안내하고 있습니다.

1. 여러분이 alloc, new, copy, 또는 mutableCopy 메소드로 다른 객체르 생성했다면, 여러분이 release 해야 합니다.

– 여러분이 alloc, new, copy, 또는 mutableCopy 메소드로 다른 객체를 생성했다면, 그 개체는 리테인 카운트가 1이 되며, 그 객체를 더 사용하지 않으면 여러분이 직접 release 해야 합니다. release 메시지를 나중에 보내고 싶다면, 그 객체를 오토릴리즈 풀(autorelease pool)에 직접 넣을 수도 있습니다.

2. 그렇지 않은 경우라면, 객체가 이미 오토릴리즈 풀에 들어있고, 리테인 카운트는 1이라고 생각하십시오.

1번과 다른 방법으로 객체를 얻었다면(스트링 포메터, 배열초기화 등), 그 객체는 오토릴리즈 풀에 이미 들어있고 리테인 카운트는 1이라고 생각하십시오.(현재 메소드의 처리가 끝나면 그 객체는 없어져 버릴 수도 있다는 의미입니다.) 다시 말하면, 현재 메소드의 처리가 끝나고 나서도 계속 그 객체를 사용하고자 하는 경우에는 꼭 리테인을 해야 한다는 의미입니다.(리테인한 경우에는 꼭 릴리즈 해 주어야 합니다.)

Advertisements

HeadFirst iPhone 개발 두번째 앱, 트위터 연동 부분 InstaTwit

책을 보면서 트위터 앱을 만들고 있던 중, 트위터 연동 부분의 코드를 트위터가 더이상 지원하지 않아서 막혀있다가, 어떻게든 완성해 보고 싶어서 알음알음 물어물어 찾아서 Sharekit이라는 것을 알게 되었고, 오레일리 게시판을 읽어보면서 문제를 해결했다. 개발 경험이 미천한 나에게는 아주 값진 경험이었다.

간단하게 정리하면, ShareKit 사이트로 가서 페키지를 다운 받는다.

압축을 풀고 Classes>ShareKit>Sharers 폴더을 선택한후 XCODE의 Classes 폴더에 추가한다.

.h 파일에는 #import “SHK.h” 와 #import “SHKTwitter.h” 를 추가하고,

.m 파일의 -(IBAction)sendButtonTapped:(id)sender{

……

SHKItem *item = [SHKItem text:themessage];

[SHKTwitter shareItem:item];

}

두줄을 추가한다.

한가지 더 트위터 개발자 센터에 들어가서 앱을 등록해야 하는데, xAuth 까지는 테스트할때 필요하지 않으므로 트위터에서 앱등록시는 브라우저로 등록한다.

트위터에 앱을 등록할 때, 헛갈릴 수 있는 부분이 callback url 부분을 등록하는 부분인데 자기가 가진 도메인중 아무거나 선택해도 상관이 없다.

callback url 는 트위터로 앱을 연동시킨후에 이동하게 되는 주소인데, 이 부분은 ShareKit 이 자동으로 처리해 준다. 다만, SHKConfig.h 에서 CallbackUrl로 기록된 부분에 자신이 트위터 앱을 만들때 썼던 주소를 사용하기만 하면 된다.

OAuth로 등록할 경우 SHKConfig.h에서 등록해 줄 내용은 xAuth(등록하려고 한다면 1로 값을 바꿔주면 된다)를 제외한 총 네가지다. 이 부분은 쉽게 따라가실 수 있을 것이다.

개발 문서를 보면 다양한 활용이 가능할 것 같다.

페이스 북도 같은 방법으로 진행하면 된다. SHKConfig.h 에서는 두가지(FacebookKey, FacebookSecret)만 입력하면 되므로 더 간단하다.

아이폰 개발시 중요 참고 사이트

http://lambert.tistory.com/ : 티스토리 개인블로그

http://cafe.naver.com/mcbugi : 네이버 맥부기 카페

http://developer.apple.com/ : 애플 개발자 센터

http://www.cocoalab.com/?q=becomeanxcoder : Cocoa 와 XCode 입문하기

http://www.cocoadev.co.kr/tag/Cocoa%20Lab. : OS X에서 cocoa 맛보기

http://moogab.com/116259750 : IB 응용의 끝인듯

http://theeye.pe.kr/ : 아이군의 블로그

http://iphoneos.co.kr/ : Korea iOS Developer Group 의 HTTP/HTTPS 통신

http://fmttm.egloos.com/4324991 : iPhone NSURLRequest 사용법 POST 전송 방식

http://www.iphonesdkarticles.com/2009/01/uitableview-searching-table-view.html : UISearchBar 공략시 참고 사이트

http://www.zzerr.net/tag/cozymood.com : Cozymood 제작자 왠만한 웹관련 기능들은 다 있어서 분석해 볼만한 오픈스소 앱이다.

http://alones.kr/1523 : JSON 관련해서 배울 수 있는 좋은 사이트

http://www.ibm.com/developerworks/kr/library/x-ioschat/index.html : 처음부터 iPhone 대화 앱 빌드하기