본문 바로가기

iOS Dev

iOS Version Check 오늘의 Tip 1. iOS Version Check # iOS 버전체크하기 가끔 우리는 특정 버전에서 사용할 수 없는 메소드들을 만나게 됩니다. 그럼 지원하지 않는 버전의 기기에서 그 메소드를 호출하면 펑~ 하고 어플리케이션이 죽어버리는 사태가 발생하죠. 그래서 개발문서를 잘 보고 메소드를 사용하여야 합니다. 나도 모르는사이에 펑하고 어플리케이션이 죽어버릴 수 있으니까요 ㅎㅎㅎ 자, 그럼 버전체크하기~ 주석에 달려있듯이 아래 메소드를 사용하여 내가 적어준 버전과 같은지, 그보다 아래인지 위에인지 판단 할 수 있습니다. 자주 필요하다면 아래처럼 App-Prefix.pch 내에 매크로로 정의하여 사용하여도 편리합니다~ by yagom facebook : http://fb.yagom.net twitter : .. 더보기
iOS개발하기 #44. UIAlertView Customize (Override) 오늘의 주제 1. UIAlertView Customize 마흔 네 번째 시간입니다.^^ 정말 오랜만의 포스팅입니다~! 그동안 잘 지내셨나요?ㅎ 정말 무더위가 장난이 아니네용... 동남아 날씨 +_+ 지난 번 공지로 iOS6와 스토리보드로 출발해 보겠다고 말씀드렸는데, 아직 제가 준비가 되지 못한 관계로 오늘도 iOS5로, 스토리보드 없이 진행합니다! 자, 그럼 다시 힘찬 출발을 해 볼까요?ㅎ # UIAlertView 커스터마이징 전에 2012/05/11 - [iOS Dev/함께해보기] - iOS개발하기 #29. 경고창 (UIAlertView) 포스팅에서 AlertView에 대해서 해 보았습니다. 이번엔 요 녀석을 커스터마이징 하는 방법을 살짝 이야기 해볼까 합니다. 물론 제가 오늘 소개해 드리는 방법 외.. 더보기
특정파일 ARC 제외시키기 Tip ARC(Automatic Reference Counting) 프로젝트에서 특정파일 ARC 제외시키기 안녕하세요 야곰입니다.^^ 팁이지만 간만에 포스팅이네요~_~ iOS5가 나온 이후로 ARC가 생겨서 많이들 좋아하셨는데, 다른 오픈소스나 라이브러리 등을 가져다 쓰려면 지난 소스들은 ARC 기준으로 작성되어 있지 않기 때문에 적용하기 난감했던 경우가 많으셨을 겁니다. 그런데 이런 방법으로 하면 간편히 지난 소스들을 다시 사용할 수 있습니다 ㅎㅎㅎ # 본 포스팅은 iOS5.1, Xcode Version 4.3.3 (4E3002) 기준으로 작성되었음을 알려드립니다. # ARC 제외시키기 일단 뭐 ARC 프로젝트가 필요한데 딱히 뭐 쓸만한 놈이 없으니 하나 만들어 봅니다 ㅎㅎㅎ 당연히 Use Automa.. 더보기
애플리케이션 첫 로딩 이미지~! 오늘의 Tip 1. 애플리케이션 실행 시 로딩 이미지 설정하기 2. 이미지 나타났다 없애기 애플리케이션 실행 했을 때 처음에 나오는 로고 이미지 등을 넣는 방법입니다.ㅎ # 실행 시 로딩 이미지 넣기 정말 간단합니다. Default.png 라고 이름을 만들어서 넣으면 알아서 찾습니다.. ^^; 물론 레티나 이미지는 뒤에 @2x 를 붙여주시면 되겠죠?ㅎ 주의할 점은 대소문자를 구분한다는 것입니다. 주의하세요~! ㅎ 그리고 좀 더 로고를 오래 보여주고 싶다면, AppDelegate로 와서 잠깐 정지 시킵니다..ㅎ 여기서는 1.5초를 중지시켜 봤어요~ # 나타났다 사라지는 애니메이션 이미지 뷰를 하나 선언해 주시구요~ 애니메이션을 이렇게 만들어 줍니다...^^ 이 코딩 기법은 블록코딩 기법입니다. 블록코딩 기.. 더보기
iOS개발하기 #43. iOS Application Life Cycle 오늘의 주제 1. iOS 어플리케이션의 생명주기 2. ViewController의 생명주기 마흔 세번째 시간입니다.^^ 요 며칠 제 개인적으로 좀 힘든일도 있고, 빡빡한 프로젝트 일정 때문에 제대로 포스팅을 하지 못했습니다. 흙흙 아직 프로젝트가 마무리 되지는 않았지만 최대한 짬을 내 보도록 하겠습니다..ㅎ 우리 이제까지 정말 쭉쭉 달려왔습니다. 이것저것 해 보면서 많은 것을 맛 봐왔죠...ㅎ 물론 이것 저것 많이 해 보는 것도, 맛을 보고 언제 어디서 어떻게 써야할지 감을 익히는 것도 중요합니다. 그러나 더더욱 중요한 것은 통괄적인 흐름이고 기초죠. 초반에 포스팅 할 때 말씀드렸듯이 아주 기초적인 사항들은 많이 스킵하고 넘어왔습니다. 이번에는 그래서 정말 기초 하나를 같이 알아보고자 합니다. 물론 초보.. 더보기
iOS개발하기 #42. XML Parser (3) <TBXML, NSNotification, UITableViewCell> 오늘의 주제 1. XML 파싱결과 테이블에 보여주기 마흔 두 번째 시간이자 XMLParsing 마지막 시간입니다.ㅎㅎ 지난 번까지 진행했던 내용들은 잘 되셨는지요? 이번에는 이제 XMLParsing을 마무리 해보려고 합니다. 자, 긴말 필요없이 떠나 봅시다 ㅎ # NSNotification 지난 번에 '인절미후후' 님께서 블럭코딩 중에 데이터를 다른 메소드로 전달 하는 방법이 떠오르지 않아서 어려웠다고 말씀하셨는데요, 우리는 이미 배웠습니다..ㅎㅎ 객체간 데이터 전달에 관한 내용들 말예요~^^ 2012/05/24 - [iOS Dev/함께해보기] - iOS개발하기 #33. Protocol, Delegate (프로토콜, 델리게이트) 2012/05/26 - [iOS Dev/함께해보기] - iOS개발하기 #34.. 더보기
iOS Version Check, iOS버전체크, 상태체크, 기기명 등 기기정보 가져오기 오늘의 Tip 1. 현재 기기의 정보 가져오기 # UIDevice 오늘은 현재 기기의 정보들을 가져오는 것에 대해 알아봅시다. 일단 버전별 호환성 때문에 버전체크를 가장 많이 사용을 할 텐데, 버전정보를 가져오는 메소드를 살펴봅시다. 우선 UIDevice라는 클래스가 있네요. 레퍼런스를 살펴봅시다. 프로퍼티 중에 여러가지가 있는데, 이왕이면 한 번 다 같이 알아보도록 해요 ㅎㅎ 이런식으로 정보를 가져올 수 있습니다. 특히 기기 이름은 사용자가 지정해 놓은 기기명입니다. 그게 무슨뜻이냐구요?ㅎ 설정 - 일반 - 정보에 들어가면 나오는 이름을 뜻합니다. 버전을 체크할 때 이렇게 메소드들을 직접 만들어서 하기도 하구요, 미리 컴파일된 헤더(.pch) 파일에 #define으로 넣어서 구현하기도 한답니다. 예) .. 더보기
iOS 6 beta 설치해보기 이번에 iOS 6 개발자 베타버전이 배포되었죠. 그래서 저도 설치해 보았습니다 ㅎㅎㅎ 한국어 siri 및 뭐 다양한 기능들이 있고, 페이스북도 들어가고...ㅎㅎ 오늘은 설치방법에 대해 한 번 알아봅니다~! 일단 애플 개발자 개정이 있어야 합니다. (무료 개발자 말고 $99 결제 한 개발자에 한함) 물론 설치하려고 하는 기기도 개발자 계정에 등록이 되어있어야 합니다. http://developer.apple.com 에 방문하여 iOS Dev Center로 향합니다.ㅎ 개발자 계정으로 로그인을 하면 아래와 같은 화면이 나옵니다. iOS 6 SDK beta 탭에 들어가셔서 Downloads를 클릭! 일단 iTunes 10.6.3을 다운받습니다(기존의 아이튠즈를 업데이트 하셔도 됩니다.) 그리고 자신의 기기에 .. 더보기
iOS개발하기 #41. XML Parser (2) <TBXML> 오늘의 주제 1. TBXML로 XML파싱 마흔 한 번째 시간입니다.^^ 지난 번에 테이블을 준비해 두었었죠? 오늘은 XML 파싱을 한 번 해보려 합니다. 본래 코코아 내에 NSXMLParser 라는 XML파싱 클래스가 존재 합니다. 그래서 그녀석으로 포스팅을 해볼까 하다가, 그녀석 보다 좋은 녀석이 있어서 소개 겸 진행해 보려고 합니다. 사용법도 훨씬 간단하고 속도도 훨씬 빠릅니다~! NSXMLParser는 처음 파싱해보는 분들은 정말 어려워 하는 경향이 있습니다. 그래서 준비했습니다. TBXML...! 오픈 라이브러리 가져다가 잘 쓰는 것도 중요합니다 ㅎㅎㅎ 저도 처음 써보는데, 일단 해 봅시다 ㅎㅎ # XML의 구조 지난 번에 예제로 쓰겠다고 했던 날씨 XML 데이터 입니다. XML은 요소(엘리먼트).. 더보기
iOS개발하기 #40. XML Parser (1) <UITableViewCell, UITableView> 오늘의 주제 1. XML 파싱을 위한 준비 2. 커스텀 테이블뷰 셀 만들기 마흔 번째 시간입니다.^^ ( *_* 벌써!!??? ) 지난 번까지는 JSON 으로 내려온 데이터를 파싱해 보았습니다. 이번에는 XML을 파싱하는 방법에 대해 알아보도록 하겠습니다. 기상청에서 내려주는 날씨데이터를 가지고 파싱을 해 보도록 할거예요. 오늘은 파싱을 위한 커스텀 테이블 준비를 해 볼게요~ 가봅시다~~~~~~~~~~~ ^0^ # 파싱을 위한 테이블 뷰 준비 우리가 파싱해 볼 기상청의 데이터 입니다. http://www.kma.go.kr/XML/weather/sfc_web_map.xml 에 접속하면 내려오는 데이터 입니다.ㅎ 요녀석을 파싱해 봅시다~! 일단 새로운 테이블 뷰 컨트롤러를 만들어 줍니다. New File.... 더보기
iOS개발하기 #39. UISearchDisplayController(5) <UIImage, UITableView Section Header> 오늘의 주제 1. 이미지 웹에서 로딩하기 2. 테이블 뷰 섹션 이름 넣기 서른 아홉번째 시간입니다.^^ 지난 번에는 스레드 관리와 네트워크 상태 감지까지 해 보았습니다. 잘 실행 되시나요? 혹여나 부족한 부분이 있다면 꼭 댓글주세요~! 오늘은 이미지를 웹에서 로딩해서 테이블 뷰에 넣어주고, 테이블 뷰에 섹션 이름 넣는 것 까지 해보려 합니다. 우리가 이미 만들어 놓은 것들이 많으니 소스를 조금만 추가하면 될거예요~ 자~! 출발! # 웹 이미지 로드 우리는 지난 번에 item을 불러올 때 책 이미지에 대한 URL을 함께 받아왔습니다. 네, 이렇게 서버에서 정보가 내려올 때, 이미지 데이터를 직접 보내주지 않고 이미지의 주소를 보내줍니다. 혹여 이미지가 필요하면 받아가라~ 그런 뜻이겠죠 ㅎ 그래서 이미지를 .. 더보기
네트워크 상태 체크하기 오늘은 네트워크 상태 체크하는 방법에 대해 간략하게 소개합니다~ 네트워크 상태 체크하는 API는 따로 없지만 애플에서 공식적으로 클래스를 제공해 주고 있습니다~ # '나는 고수다' 하시는 분들은 1. Reachability Link 를 들어가서 샘플코드를 다운로드 받은 후에 Classes 폴더 내부의 Reachability 헤더와 구현파일을 자신의 프로젝트로 가져온다. 2. Systemconfiguration.framework를 추가한다. 3. 사용을 원하는 곳에 Reachability.h 를 임포트하여 사용한다. 4. 간략한 소스를 원한다면 Classes 폴더 내의 AppDelegate 구현파일을 참고한다. 5. 만약 Reachability를 넣고 링크 에러가 난다면 글 맨 아래를 참고한다. # 위의 .. 더보기
iOS 시뮬레이터 언어 변경 오늘은 시뮬레이터에서 언어를 변경 하는 방법에 대해 알아봅니다. 로컬라이제이션을 마친 후 테스트를 할 때 언어별로 테스트 해보고 싶을 때 유용하겠죠?ㅎ 저를 사랑한다고 해주신 '남자'분 지호님께서 요청하셨습니다... ^^ 시뮬레이터 설정(Settings)에 들어갑니다. General(일반) 클릭 International(다국어) 클릭 Language(언어)클릭하여 원하는 언어 선택 키보드 추가가 필요하다면 Keyboards(키보드) 클릭 Add New Keyboard...(새로운 키보드 추가...) 클릭! 해서 원하는 언어의 키보드 추가~ 요로코롬 하시믄 됩니다 ^^* ↓↓↓도움이 되었다면 손가락 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 사랑합니다~ ↓↓↓ 더보기
iOS개발하기 #38. UISearchDisplayController(4) <NSThread, Reachability> 오늘의 주제 1. Thread 중지하기 2. 네트워크 상태 체크 서른 여덟번째 시간입니다.^^ 그 전에 오늘은 현충일이네요! 나라를 위하여 목숨을 내던진 우리 선조님들에게 경의를 표합니다. 진심으로 고맙습니다. 지난 번에 테이블에 파싱 결과를 뿌려주는 것을 해 보았는데요, 코드에 결점을 발견하게 되어 수정사항과 보강사항에 대하여 포스팅 합니다. 이렇게 자꾸 예외상황에 대해 코드를 추가 해 주고, 실수 한 부분에 대해서는 다시 작업을 해 주어야 겠지요..ㅋㅋㅋ 이 또한 프로젝트를 진행하는 묘미 아니겠습니까..ㅋㅋㅋ 여하튼 한 발 늦춰 가더라도 틀린 부분을 다시 짚고 넘어가기 위해 포스팅 하므로, 급한 마음 조금만 누그러뜨리시고 봐주시기 바랍니다~ 자, 그럼 가봅시다~! # Thread 중지(취소)하기 일단.. 더보기
iOS개발하기 #37. UISearchDisplayController(3) <UITableView, UITableDataSource> 오늘의 주제 1. 테이블 뷰에 파싱결과 뿌리기 서른 일곱 번째 시간입니다.^^ 지난 번에는 웹에 자료를 요청하고 JSON으로 결과를 받아 파싱하는 과정까지 해 보았습니다. 잘 실행 되셨나요? 계속해서 코드의 양이 늘어나고 어려워 지고 있습니다 +_+ 코드의 양도 많고 해야 할 것도, 처리해 줘야 할 것들도 많기 때문에 코드에 일일히 설명을 자세히 달기가 더 어려워지고 있습니다 ㅠ_ㅠ 여러분께서 부족한 부분은 질문을 주셔서 채워주셔야 합니다~! 그럼 오늘 또 차근차근 스텝을 밟아 나가 볼까요?ㅎ 렛츠고~~~~~~~~~ # 테이블뷰에 결과 띄워주기 자, 파싱된 결과를 활용해 주어야 하기 때문에 적절히 딕셔너리와 배열 포인터를 헤더에 선언해 줍니다. 변수를 만들어 줬으면 초기화와 마무리는 꼭 해주어야 하는거 .. 더보기
누를 때 마다 이미지 바뀌는 버튼 (체크박스 버튼) '아퐁'님의 요청으로 만들어 보았습니다~ 버튼을 누를 때 마다 이미지가 바뀌도록 설명해 달라고 하셔서 해 봅니다. 일단 추천 한방 어떠세요 ㅋㅋ 시작! 화면에 버튼을 올리고 액션을 연결해 줍니다. 그리고 버튼에 사용할 이미지를 프로젝트에 추가해 주고, 버튼 이미지를 눌리지 않은 상태로 변경해 줍니다. 그리고 요로코롬 깔쌈하게 메소드를 코드로 채워주면 끝~! 잘 되나 확인해 볼까요?ㅎ 굿 웍~! ↓↓↓도움이 되었다면 추천 한방 꾹 눌러주고 가시는 건 어떨까요? ^~^ 고맙습니다~ ↓↓↓ 더보기
iOS개발하기 #36. UISearchDisplayController(2) <UISearchBar, NSThread, JSON, NSRequest> 오늘의 주제 1. UISearchBarDelegate 2. Daum Open API 3. NSThread 4. JSON parsing (JSONSerialization) 서른 여섯 번째 시간입니다.^^ 지난 번에는 계속 포스팅을 위해 이것저것 준비를 해 두었지요? 지난 번 포스팅에 계속 이어지는 포스팅 입니다~ 2012/05/30 - [iOS Dev/함께해보기] - iOS개발하기 #35. UISearchDisplayController(1) 오늘은 스레드와 리퀘스트 그리고 JSON 파싱에 대해 중점적으로 진행해 봅니다. 자~ 출발합니다~! # UISearchBar 일단, 검색바에 검색어를 입력하였을 때, 그리고 검색 버튼은 눌렀을 때 검색을 시작하려고 합니다. 그래서 검색바 델리게이트 레퍼런스로 와서 그에.. 더보기
iOS개발하기 #35. UISearchDisplayController(1) <UISearchBar, UITableView> 오늘의 주제 1. UISearchDisplayController 서른 다섯 번째 시간입니다.^^ 지난 번에까지는 객체간의 데이터 전달에 대해 알아보았습니다. 잘 알아두셔야 할 부분들일 거예요 ㅎ 오늘 부터 시작할 포스팅은 꽤나 길게 이어질 것 같습니다. 여러분께서 원하던 기능들을 많이 많이 해볼거거든요..ㅎ 제목은 UISearchDisplayController 지만 이 안에는 엄청나게 많은 내용들을 담게 될 것입니다. 요 녀석에 많은 것을 활용 해 볼 수 있는 요소들이 있거든요 ㅎ 자 일단 결론부터 말씀을 드리자면 검색결과 컨트롤러 다루기 테이블뷰 다루기 검색바 다루기 스레드 다루기 URL Request 전송 JSON 파싱 XML 파싱 여러분들께서 궁금해 할 만한 내용들을 대폭 담아 볼 예정입니다. 원래.. 더보기
#pragma mark - 소스코드 이쁘게 관리하기 개발하다가 소스코드가 길어지고 지저분해 지다보면 어떤 메소드가 어디에 있는지 찾아가기 굉장히 불편해지고 가독성이 떨어지게 됩니다. 그래서 소스코드를 약간 이쁘게 정리해 둘 필요가 있습니다. 습관을 들여놓으면 아주 좋아요 ㅎ #pragma mark 요녀석을 사용하면 좋은데요~ 한 번 보여드릴게요~ 코드 오른쪽 상단에 보면 바로갈 수 있는 네비게이터가 있는데요 한 번 클릭해 보시면 구현되어있는 변수들과 메소드들이 쭈욱 나열될 거예요. 그런데 영역별로 마크를 남겨주면 알아서 보기 좋게 정리해 줍니다~ 이렇게 이쁘게 깔끔하게 말이죵~ㅎㅎ 정리 되어있지 않았을 때입니다. 소스코드 정말 얼마 되지도 않는 컨트롤러인데도 자신이 원하는 메소드 한 번에 찾아가기 거의 불가능 하다고 봐야겠죠^^; 요로코롬 유용한 녀석이 .. 더보기
iOS개발하기 #34. NSNotificationCenter (노티피케이션센터) 오늘의 주제 1. NSNotificationCenter 서른 네 번째 시간입니다.^^ 지난 번에는 델리게이트 프로토콜을 이용하여 데이터를 주고 받는 것을 해 보았습니다. 어떤가요 흥미로우신가요?ㅎ 프로토콜을 사용하여 통신하는 방법도 있지만, iOS에서는 또하나의 흥미로운 기능을 제공합니다. 바로 노티피케이션 센터라는 녀석인데요, 우리가 푸쉬 알림 받는 그 노티피케이션이 아닙니다 ㅎㅎ 그럼 일단 한 번 시작해 보도록 하겠습니다. 그 전에 딕셔너리에 대한 이해가 조금 필요로 합니다. 2012/04/20 - [Objective-C] - Objective C . 딕셔너리, 배열 ( NSDictionary, NSArray ) 자 떠나볼까요?ㅎ 고고씽~~~~~~~~~~~~ # NSNotificationCenter?.. 더보기