본문 바로가기

프로그래밍/아이폰 프로그래밍

(37)
21. 구글 날씨 API 사용하기 구글 API를 이용해서 날씨를 출력하고자 하는 경우 http://www.google.co.kr/ig/api?weather=도시명 을 이용하면 xml 형태로 리턴되어 옵니다. GoogleWeatherViewController.h #import // xml 파싱을 위해서 NSXMLParserDelegate를 반드시 참조해줘야 합니다. @interface GoogleWeatherViewController : UIViewController { NSMutableData *receiveData; // xml을 받을 데이터 NSURLConnection *urlConnection; // 커넥션 NSString *condition; // 오늘의 날씨를 받을 스트링 } @property (nonatomic, retain)..
20. UITableView 데이터 편집 및 삭제 이번에는 테이블에 있는 데이터를 편집, 삭제 해보겠습니다. 1. 편집 버튼을 루트 뷰에 추가하세요. RootViewController.m - (void)viewDidLoad { [super viewDidLoad]; // 앱 종료 이벤트를 노티피케이션 센터에 등록합니다. [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationWillTerminate:) name:UIApplicationWillTerminateNotification object:nil]; NSString *path = [[NSBundle mainBundle] pathForResource:@"DrinkDirections" ofType:@"plist..
19. 데이터 저장, 편집, 정렬 (NSMutableArray) 배열에 저장된 데이터를 프로퍼티 리스트로 저장하는 작업을 해보겠습니다. DrinkConstatns.h #define NAME_KEY @"name" #define INGR_KEY @"ingredients" #define DIRE_KEY @"directions" AddDrinkViewController.h @interface AddDrinkViewController : DrinkDetailViewController { NSMutableArray *drinkArray; } @property (nonatomic,retain) NSMutableArray *drinkArray; AddDrinkViewController.m #import "DrinkConstants.h" @implementation AddDrinkV..
18. 키보드가 뷰를 가릴때 스크롤 뷰 사용하기 이번시간에는 키보드가 올라와 뷰를 가릴때 가려져 있는 화면을 보기 위해 스크롤 뷰를 사용해 보기로 하겠습니다. 키보드가 올라와서 화면을 가리고 있습니다. 뷰에 스크롤 뷰를 넣어서 화면을 드래그 해서 볼수 있도록 해야겠습니다. 모든 컨트롤을 선택합니다. 그리고, Layout -> Embed Objects In -> Scroll View 옵션을 선택합니다. ScrollView 필드를 선언하고 프로퍼티를 선언합니다. DrinkDetailViewController.h #import @interface DrinkDetailViewController : UIViewController { NSDictionary *drink; IBOutlet UITextField *nameTextField; IBOutlet UITex..
17. 닙 파일 재사용 및 모달 뷰 만들기 이전에 개발한 프로그램에서 닙 파일을 재사용해서 모달 뷰를 만들어 보도록 하겠습니다. 위의 사진과 같이 오른쪽 상단에 + 버튼을 만들어서 버튼을 누르면 밑에서 위로 올라오는 모달뷰를 만들도록 하겠습니다. 1. RootViewController.xib 를 열고 라이브러리에서 Bar Button Item을 찾아서 메인 윈도우로 드래그 합니다. 2. addButtonItem에 대한 IBAction, IBOutlet, 프로퍼티 선언을 추가합니다. 3. addButtonItem에 대해서 프로퍼티의 @synthesize, dealloc에서 release, addButtonPressed 메로스를 추가합니다. 4. 인터페이스 빌더에서 마무리 합니다. RootViewController.h #import @interfac..
16. 내비게이션 기반 템플릿 사용 및 테이블 뷰 다음과 같은 앱을 만들기 위해서 내비게이션 기반 템플릿을 사용할 것입니다. 프로젝트를 새로 만들기 위해서 Xcode에서 File -> NewProject 를 선택합니다. Navigation-based Application을 선택하고 프로젝트 이름을 쓰고 저장합니다. 이때 "Core Data" 옵션은 체크하지 않습니다. 이 프로젝트는 내비게이션 컨트롤러가 제공됩니다. 여기에는 뒤로가기 버튼, 타이틀 바, 그리고 뷰 히스토리가 제공되므로 사용자가 헤매지 않고 데이터를 찾아볼 수 있습니다. 뷰 전환시 애니메이션 처리도 해줍니다. 프로젝트를 생성하면 테이블 뷰가 기본 제공됩니다. 우선 이 테이블 뷰에 넣어줄 데이터를 가죠오도록 하겠습니다. RootViewcontroller.h #import @interface ..
15. 텍스트필드 사용 및 키보드 on/off 기능 구현하기 인터페이스 빌더에서 위와 같이 텍스트 필드를 View에 만들어 줍니다. 텍스트 필드드의 속성에는 여러가지가 있는데 그중에 많이 사용하는 것들은... Text - 입력된 텍스트 Placeholder - 문자열이 비어있을때 보이는 텍스트 Clear When Editing Begins - 텍스트필드를 클릭했을 경우 입력되어 있던 문자열이 지워진다. Font - 폰트 이정도 입니다.. 인터페이스 빌더를 저장(Cmd+S) 한 후, X-code를 빌드해 보면 텍스트 필드가 나오고 텍스트 필드를 클릭하면 키보드가 밑에서 튀어 나와 글씨를 입력할 수 있습니다. 그러나 글씨를 모두 입력한 후에도 키보드를 내릴 수가 없습니다. 키보드를 숨겨주기 위해서는 텍스트 필드에게 포커스를 놓으라고 요청해야 합니다. (최초 응답자 자..
14. 메모리 관리 1. alloc, new, copy, 또는 mutableCopy 메소드로 다른 객체를 생성했다면, 직접 release 해야한다. release 메시지를 나중에 보내고 싶다면, 오토릴리스 풀(autorelease pool)에 넣을 수도 있다. 2. 위와 같은 경우가 아니라면, 객체가 이미 오토릴리스 풀에 들어있고 리테인 카운트는 1이 된다.