본문 바로가기

프로그래밍439

코어데이터 사용시 마이그레이션 문제가 발생할 경우 App개발시 코어데이터를 사용할 경우 필요에 따라 최초 구성된 데이터 모델을 변경해야 할 경우가 있다 하지만, 변경을 잘못할 경우 NSCocoaErrorDomain Code=134130 와 같은 에러가 발생한다. 해당 부분은 데이터 모델 파일을 버젼추가하지 않고 바로 수정했을 경우에 발생하는 것으로 해결하기 위해서는 수정한 부분을 원래대로 돌려놓고 버젼 추가한후 수정을 하면 된다. 코어데이터는 자체적으로 마이그레이션 기능을 가지고 있는데 버젼 파일이 추가가 아닌 변경될 경우에는 해당 부분에서 오류가 발생해 정상적으로 동작하지 않기 때문에 발생하는 오류이다. 2012. 7. 4.
Xcode에서 커스텀 템플릿 만들기 커스템 템플릿 만드는 방법. 영어 몰라도 대충 이해되는 동영상 ㅋ 직접 해본 결과.. 1. /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application 에서 기본 템플릿 중 하나를 복사 2. ~/Library/Application Support/Developer/Shared/Xcode 에 새폴더 생성 폴더 이름은 Project Templates (이미 존재하면 새로 만들 필요 없음) 3. Project Templates 폴더에 이 폴더 안에 아까 복사한 기본 템플릿을 붙여 넣고 원하는 이름으로 변경한다. 이때 지정하는 폴더 이름이 Xcode에서 템플릿 선택시에 나타날 이름이 된다. 4. 템플릿 폴더 .. 2012. 6. 22.
프로젝트에 자신의 커스텀 프로젝트를 추가하자(예제 cocos2d) 자신이 만든 커스텀 프로젝트를 넣어둔 강의를 보신적 있을 겁니다... 그런걸 추가하는 방법을 남겨 볼까 합니다.... 일단 기본적으로 추가할수 있는 폴더가 4군데가 있습니다.(첨부된 파일의 경로를 봐주세요) 1.뉴 프로젝트의 기본프로젝트 경로.png 에 넣으면 나오는곳 2.뉴 프로젝트의 유저템플릿의 경로.png 에 넣으면 나오는곳 3.뉴 파일의 기본프로젝트 경로.png 에 넣으면 나오는곳 요런곳에다가 추가 할수 있습니다.... 자 본격적으로 시작해 볼게요... 기본적으로 2가지만 예를 들어서 해보겠습니다 요거 응용하시면 다른것들도 추가 하실수 있습니다. 첫번째로 게임 만들때 많이 쓰이는 cocos2d입니다. 저는 기본적으로 게임신 메뉴신 요렇게 몇개 만들어진걸 기본적으로 추가해 두고 쓰는중입니다.. ^^.. 2012. 6. 22.
아이폰 정적 라이브러리 템플릿과 기존 프로젝트에 정적 라이브러리 추가하기 출처 : http://lambert.tistory.com/341 다양한 아이폰 프로젝트를 진행하면서, 재사용할 수 있는 라이브러리가 축적되고 있다. 그런데 iOS SDK는 커스텀 프레임워크(Custom Framework)나 동적 라이브러리(Dynamic Library)를 지원하지 않는다. 그래서 비교적 손쉽게, 소스 코드의 재활용을 위해, 선택할 수 있는 방법이 바로 정적 라이브러리(Static Library)를 사용하는 것이다. 자신만의 라이브러리를 사용하는 방법을 다음의 6단계로 간단히 요약할 수 있다. (단계 1은 옵션이다.) 설명은 다음의 단계별로 진행한다. Xcode용 정적 라이브러리 템플릿 추가라이브러리의 모든 소스 코드를 포함한 프로젝트 생성설정을 포함한 정적 라이브러리 타겟 생성라이브러리를.. 2012. 6. 21.
아이폰 용 정적 라이브러리 만들기 출처 : http://lambert.tistory.com/344 이전 포스트 아이폰 정적 라이브러리 템플릿과 기존 프로젝트에 정적 라이브러리 추가하기에 서는 템플릿을 이용해 아이폰 용 정적 라이브러리(Static Library)를 만들고 적용하는 방법을 알아 보았다. 그런데 템플릿을 이용하는 방법을 설명하였기 때문에 정적 라이브러리를 만드는 방법에 대한 설명이 부족했다. 이에 그 부분에 대한 보충 설명을 하고자 한다. [샘플 프로젝트] LPLibrary.zip StaticTest.zip 1. 정적 라이브러리 프로젝트 생성 정적 라이브러리 생성을 위해 프로젝트를 생성한다. 프로젝트 템플릿 선택 창에서 Library > Cocoa Touch Static Library를 선택한 후 이름을"LPLibrary"라.. 2012. 6. 21.
Xcode 프로젝트 템플릿을 이용해 iOS 프로젝트 시작점 제어 여러번 iOS(아이폰, 아이팟터치) 관련 어플을 만들면서 다음과 같은 필요성이 생겼습니다. 1. 공통 라이브러리(클래스 집합) 2. 공통 리소스(XIB 및 이미지, 각종 설정, DB등 집합) 3. 외부 라이브러리 사용 4. 한번에 만들어지는 프로젝트 1번 공통라이브러리는 클래스 집합입니다. 누구나 프로젝트를 진행하다보면 나만의 코드조각, 클래스들이 만들어집니다. 이게 쌓이고 쌓여서 프로젝트때 마다 Xcode상에 기존코드파일을 복사해서 삽입하는 경험을 해보셨나요? 이 부분을 해결할 수 있는 가장 좋은 방법은 정적 라이브러리(static library)를 구성하는 방법입니다. 가장 쉽고 빠르죠. 다음 문서를 보면 바로 이해할 수 있습니다. 아이폰용 정적 라이브러리 만들기 : http://goo.gl/Kq8B.. 2012. 6. 21.
Xcode Code Snippet Library를 통해 코드 문서화 쉽게 하기! 출처 : http://meetkei.com/wordpress/?p=1766 코드 작성만큼 중요한 코드 문서화는 개발자 자신과 인계받을 개발자를 위해 아주X1000000 중요한 작업이다. Xcode에서는 Code Snippet Library를 통해 문서화를 손쉽게 할 수 있다. 우선 Code Snippet Library에 사용하고자 하는 주석들을 등록해야 한다. 1. 사용하고자 하는 주석을 작성한다. (아래의 예제는 Doxygen 스타일의 코드 주석) /** * @brief * @param * @return * @remark * @see * @author Keun young Kim. */ 는 Xcode에서 인식가능한 placeholder로 탭을 통해 입력지점 사이를 이동할 수 있다. 필수 사항은 아니지만 .. 2012. 6. 21.
xcode static library 만들기(스테틱라이브러리만들기) 출처 : http://blog.naver.com/kimminin/20123593848 기본적으로 잘 돌아가는 프로젝트 -> 거기 포함된 .m 파일을 다른 사람들이 보지 못하게 정적라이브러리로 만드는 과정입니다. Target -> add -> New Target static library 선택 자신에게 맞는 이름 설정~(이름을 알아서들) (라이브러리) 프로젝트에서 라이브러리화 할 xxx.m파일을 드레그 해서 아래에 넣어준다.(아직 프로젝트에는 xxx.m 파일이 남아있습니다.) (어플) 타겟에 보면 프로젝트이름 아래에 Compile sources가 있습니다.여기속에 아까 위에서 xxx.m 파일을 찾아서 삭제합니다. 즉 지금까지 한 내용은 프로젝트에 있는 xxx.m파일을 어플을 만들때 컴파일 하는게 아니고 라.. 2012. 6. 21.
AlertView Login만들기 UIAlertView *prompt = [[UIAlertView alloc] initWithTitle:@"Username and password" message:@"\n\n\n" // 중요!! 칸을 내려주는 역할을 합니다. delegate:self cancelButtonTitle:@"Cancel" otherButtonTitles:@"Enter", nil]; textFieldName = [[UITextField alloc] initWithFrame:CGRectMake(12.0, 50.0, 260.0, 25.0)]; [textFieldName setBackgroundColor:[UIColor whiteColor]]; [textFieldName setPlaceholder:@"username"]; [prompt.. 2012. 6. 15.
Web에서 App실행하는 Javascript iOS용 run MyApp 안드로이드 용 2012. 6. 15.
아이폰 앱 76개 소스코드, 강좌, 개발 팁 링크모음 출처 : http://xguru.net/622 아이폰 개발시 도움이 되는 각종 팁 , 튜토리얼, 소스코드 링크 모음입니다. 제가 주로 트위터를 통해서 공개한 것들입니다만, 워낙 간헐적으로 트위팅 한듯해서 좀더 링크를 모아서 포스팅 합니다. 한글판 앱스토어 리뷰 가이드라인은 아이폰 앱 개발자분들은 꼭 한번 읽어보셔야 합니다. Open Source iPhone Apps List – 43 App Store Apps So Far ! 아이폰 앱들중에 앱스토어에 등록되어 있으면서도, 소스가 공개되어 있는 앱들의 모음입니다. 관련 앱을 개발할 때 참고하면 아주 유용하게 사용할수 있을것입니다. 트위터 클라이언트 Natsulion, Tweetee,Tweetero,Twitterfon ( 많은분들이 사용하시는 EchoFon.. 2012. 6. 6.
FaceBook Graph Api 설명 출처 : http://developers.facebook.com/docs/reference/api/ At Facebook's core is the social graph; people and the connections they have to everything they care about. The Graph API presents a simple, consistent view of the Facebook social graph, uniformly representing objects in the graph (e.g., people, photos, events, and pages) and the connections between them (e.g., friend relationships, shared .. 2012. 6. 2.
Swipe Gesture with UIWebView webView에서 마우스액션처럼 뒤로 앞으로 구현!! - (void)viewDidLoad { [super viewDidLoad]; //Swipe Left UISwipeGestureRecognizer *swipeLeft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeLeftAction:)]; swipeLeft.direction = UISwipeGestureRecognizerDirectionLeft; //swipeLeft.delegate = self; [webView addGestureRecognizer:swipeLeft]; //Swipe Right UISwipeGestureRecognizer *swipeRight .. 2012. 5. 31.
.a 라이브러리 파일 SVN commit 방법 svn이 기본적으로 .a 파일에 대해 ignore되어 있다고 합니다. 이를 commit하기 위해서는 다양한 방법이 있습니다. 먼저, 직접 커맨드를 이용하여 하는 방법입니다. ; svn add 파일명 --no-ignore 그리고 svn설정에 .a가 ignore된 설정을 지우는 방법입니다. ; cd ~/.subversion; config파일을 열어서 global-ignores에서 *.a 제거해주시면 됩니다. 2012. 5. 24.
Xcode 에서 라이브러리 파일(*.a)가 ignore 처리되어 SVN에 등록되지 않을때 해결방법 Xcode 에서 라이브러리 파일(*.a)가 ignore 처리되어 SVN에 등록되지 않습니다. Xcode상에서도 해당 라이브러리 파일은 I로 표시되고, unignore 버튼을 눌러도 처리되지 않습니다. 할 수 없이 터미널 상에서 다음과 같은 명령을 사용해 강제 처리해야합니다.lib.a를 추가해야 한다면 다음과 같이 터미널에서 실행하세요.$ cd /lib.a가 있는 폴더$ svn add lib.a A (bin) lib.a$ svn st A lib.a$ svn commit -m 'lib.a 를 추가함'한번만 처리해 두시면 *.a 파일과 씨름하지 않아도 됩니다. ^^ 2012. 5. 24.
메모리 관리 규칙 규칙1] - alloc, copy, new 를 포함하는 메서드는 retain된 객체를 리턴한다.   이 리턴되는 객처는 retain되어 있기 때문에 반드시 release를 호출해야 한다.규칙2] - 자신이 retain 호출했다면 반드시 release를호출해야 한다.규칙3] - 클래스메서드가 객체를 생성해 줄 때는  autorelease 객체를 리턴한다.   그렇기 때문에 별도의 release를 호출하지 않아도 오토릴리즈 풀이 자동으로 release를 호출한다.  하지만, 이 객체에 대한 retain을 호출했다면 같은 횟수만큼 release를 호출해야 한다.  예)  NSString *pStr = [NSString stringWithString:@"Test"];규칙4] - 배열, 딕셔너리 등의 자료구조 클.. 2012. 5. 19.
MPMoviePlayerController의 상태에 따른 처리팁 - (void)viewDidLoad { // 노티센터에 상태값 등록 // 동영상 상태값 변경 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayerPlaybackStateDidChange:) name:MPMoviePlayerPlaybackStateDidChangeNotification object:self.movieController]; // 동영상 종료 원인 파악 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(playbackDidFinish:) name:MPMoviePlayerPlaybackDidFinishNotifica.. 2012. 5. 15.
푸쉬 알림 관련 자료 시간도 좀 늦었고; 일이 좀 있는 관계로 설명은 지금 못 올리겠구요; 필요하신 분들이 좀 계신거 같아서 관련 소스 올려 두겠습니다. 알림 설정에서 설정된 앱의 알림 on off 값을 참조 할 수 있는 자료 입니다. 5.0으로 넘어오면서 조금 바뀌긴 했지만 참고하는데 큰 지장은 없을 것 같네요~ 소스는 cookbook에서 제공하는 소스이고, 오픈되어 있는거 같기는 한데(주소만 알면 누구나 받을 수 있음) 혹시나 문제가 된다면 삭제토록 하겠습니다. 그럼 즐코딩들 하세요~ 급한 분들을 위한 한가지 덧. enabledRemoteNotificationTypes 요 값을 이용하시면 처리가 가능 하실겁니다~ ㅋ 출처: http://cafe.naver.com/mcbugi/169592 2012. 5. 9.
IAP 관련 정리 자료 IAP를 급작스럽게 구현하게 되어 -_-; 구글링 중 바로 나오는 반가운 한글 문서 링크입니다.파일로도 받을 수 있는데 막 받아도 되는지 잘 모르겠어서 링크로 올립니다. http://wangsy.com/blog/wp-content/uploads/2011/11/IAP-Guide1.pdf 제가 보기엔 정리가 매우 잘 되어 있는거 같은데..날짜도 비교적 최신이고...4.2 버전을 기준으로 써 주셨네요도움들 되셨으면 합니다. 까페에 마그리스님이 올려두신 자료도 있는데 같이 참고하시면 좋을 것 같습니다. ㅋ 출처 : http://cafe.naver.com/mcbugi/212089 [참고]하하2012/05/08 12:02답글신고애플에있는 공식가이드가 더 자세한 절차로 알려주는거같네여 첨iap구현하신다고 하여 팁을 .. 2012. 5. 9.
uiwebview 사용 시 확대 축소 uiwebview에서 html 페이지를 열 경우 확대 축소 기능을 설정하려고 할 때, 웹뷰를 선언한 다음 해당 웹뷰의 속성값 중 scalesPageToFit 를 YES 로 설정함. 2012. 5. 9.
MPMoviePlayerViewController 컨텐츠 이어서 재생하기 이것 떄문에 3일을 삽질 한걸 생각 하면 아직도 비통하다.. Info.plist -> Required background modes 항목을 추가 시켜준다. 이 항목에 app play audio를 추가해준다. 출처 : http://infact987.blog.me/150444079 2012. 5. 8.
iPhone 동영상 재생 - MPMoviePlayerViewController iOS 3.1.3 까지는 동영상 재생을 원할때 MPMoviePlayerController를 사용했었습니다. iOS 3.2 이상 버전에서는 MPMoviePlayerViewController가 추가되었습니다. 아래와 같이 사용하면 3.1.3 이전 버전과 3.2 이상 버전에서 모두 동작하도록 할 수 있습니다. 제 경우에는 UIViewController에 아래 코드를 추가하고 동영상 재생을 원하는 곳에서 노티피케이션으로 알려서 재생을 하는 방식으로 처리했습니다. - (void) moviePlayBack:(NSNotification *)noti { NSURL *movieURL = (NSURL *)[[noti userInfo] objectForKey:@"url"]; if ([[[UIDevice currentDevi.. 2012. 5. 8.
맥어드레스 가져오기 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273#include #include #include #include ... - (NSString *)getMacAddress{ int mgmtInfoBase[6]; char *msgBuffer = NULL; size_t length; unsigned char macAddress[6]; struct if_msghdr *interfaceMsgStruct; struct.. 2012. 5. 2.
Custom AlertView 잠시 일이 생겨서, 일좀 하고 왔습니다. ㅇㅅㅇ.. 요 아래 비슷한거 만들고 왔어요. 그래서, 바로 요아래와 같은걸 만들어보도록합시다..!! 꺄야야야... 근데과연 몇강까지 갈지 궁금한 "기타 잡다한것 강의..."몇강까지 갈까가, 아니라 이름 바꾸어서 끊어버렸습니다 ㅇㅅㅇ...!!! 에잇, 중간에 일하느라 뭘 쓰고 있었는지 까먹어서강의가 엉망이 되었네요 ㅠㅜ ========================================================== 오늘의 결과물 === AlertView + TableView 되겠습니다...! 오늘의 아이폰 결과물만 거의 3개... 어제 루아강의를 못쓴것이 한으로 남아, 쭉쭉 올립니다 >ㅅㅅ< 뿌뿌뿌뿌뿌뿌 그리고, 이제, 요 아래부분을 ... 일이 또 생겼넴.. 2012. 4. 29.