전체 글 248

[IOS] qr code reader, generator

ios앱 구현할때 자주 사용은 안하겠지만...프로젝트중에 qr code 생성 및 읽기 기능이 필요하여 구글신의 도움을 받아 구현하였다. qr code reader - (void)viewDidLoad{ [super viewDidLoad]; // qrcode 읽을때 사용할 카메라 세션 설정 [self AVFoundationQRViewInitCamera];} // 카메라 세션을 설정하고 카메라를 실행 시킨다.- (void)AVFoundationQRViewInitCamera { _session = [[AVCaptureSession alloc] init]; AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];..

[IOS] pop segue에서 이전뷰로 갈때의 데이터 전달 방법

pop된 view에서 이전 뷰로 돌아갈때 데이터 전달하는 방법은 보통 2가지 방법이 있다. 나는 1번을 자주 사용한다. 1. push된 뷰 컨트롤러에 델리게이트를 지정하여 델리게이트를 통해 전달 팝된뷰 - (void)ttesttableViewController:(testtableViewController *)controller id:(NSString *)pid pw:(NSString *)pass { NSString *id = pid; NSString *pw = pass; } 이전뷰 @class testViewController; @protocol testViewControllerDelegete - (void)testViewController: (testViewController *)controller i..

[IOS] sqlite 사용하기

처음 아이폰 프로그래밍을 접하고 가장 많이 하는것이 아마도 네비게이션 컨트롤러 위에 테이블뷰를 넣고 테이블뷰위에 데이터를 뿌리는 걸 가장 많이 하는것 같다. 실무에서도 많이쓰이고 구조를 이해하는데 이것만큼 좋은것이 없다고 생각된다. 테이블뷰위에 뿌려지는 데이터를 어딘가에 저장하고 싶어지기 마련인데 가장 많이 사용되는것이 sqlite일것 이라 판단된다.(나도 이것밖에 사용해본적이 없다.) 아래와같이 구현하였고 현재 이렇게 상용앱에서도 사용중이다. 일단 libraries 에 libsqlite3.dylib 을 추가해준다. // 데이터베이스를 확인하고 없다면 생성한다. - (void)checkAndCreateDatabase { NSString *docsDir; NSArray *dirPaths; // Get th..

[IOS] 초보자도 할수있는 singleton 패턴

싱글톤... singleton 프로그래밍에서는 아주 자주 접하는 말이다.말그대로 싱글 = 하나라는 뜻으로 프로그램안에서 하나의(혹은 제한된 갯수) 객체만을 생성하고 이를 프로그램이 죽을때까지 쓴다는(해제하고 다시만들수도있지만) 개념이다. 장점이라면 무분별한 객체 생성을 방지할수 있고단점이라면... 전역변수랑 다를것이없고 구조가 변경될 경우 변경되는 부분이 많아질 수있다는점?? 써도되고 안써도 되지만 나같은 경우는 전역변수로 많이 쓰는 편인데 그래도 쓰고싶어서 한번 사용해 보았다. 아래와 같이 테스트용으로 만들었고 결과는 잘된다. loginDataSingleton.h#define loginFilename @"Login.plist" //로그인정보 파일명 #import @interface LoginDataSi..

[IOS] 초보자도 할수있는 block코딩 기법.

아이폰 프로그래밍을 접한지도 꽤 시간이 지났다.계속 혼자서 하다보니 아무래도 막코딩이라 나조차 알아보기 어려울 정도로 뒤죽박죽인 경우가 많았다. 또 모르는게 많다보니 화면단에서 데이터를 넘긴다던가 클래스로 만들어놓은 오브젝트에서 다른 클래스로 뭔가 통지하거나 데이터를 날린다거나 하는것에 대해 대단히 무지해서 NSNotification만으로 코딩을 하고있었다. 기회가 되어 nhn next에서 4일동안 강의를 들었는데 여기서 강사님이 초보자도 쉽게 할수 있는 block코딩 기법을 알려주셔서 현재 대단히 유용하게 사용하고있다. 강사님왈... block은 그상태를 스냅샷 한 상태라고 생각하시면 됩니다. 라고했다.근데 진짜 이말이 맞다. block을 걸어놓은 상태에서 block이 실행되면 그상태로 돌아가는... ..

[IOS] background, foreground 타이머돌리기.

아무생각없이 코딩을 하고있다가 문득 백그라운드에서 포어그라운드로 넘어올때 한참의 시간이 지나도 화면이 갱신되지 않는 현상을 발견했다. 안드로이드에서는 기본적으로 제공되고 있는것 같아 아무생각 없이 지나쳤는데 아이폰 쪽에서는 처리해주는 AppDelegate에 메서드가 구현되어있었다. - (void)applicationDidEnterBackground:(UIApplication *)application // 백그라운드 진입시 호출- (void)applicaitonWillEnterForeground:(UIApplication *)application // 포어그라운드 진입시 호출 앱이 백그라운드 상태에서 포어그라운드로 넘어올때 첫화면부터 시작하고싶어 구글링해보니plist에 Application does not..

[IOS] ios8 apns대응

오늘 iOS8로 업데이트 되었다.테스트기기에서 돌려보니 푸시메시지가 안들어온다. 구글링하니 아래와같이 대응해줘야 한단다. 일단 AppDelegate.h에 iOS8 인지 아닌지 define을 걸어놓자!#define IS_iOS_8 [[[UIDevice currentDevice] systemVersion] floatValue] >= 8 그리고 AppDelegate.m의 첫 시작점인- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 에다가 아래와 같은 코드를 추가하자. if (IS_iOS_8) { // ios8 푸시~ [[UIApplication sharedApplic..

[MFC] CWebBrowser2 스크롤바 없애기

스크롤바 없애기를 계속 실패해서 다이얼로그를 하나 더붙혀서 그영역만 보이게 하는 꼼수를 써서 프로그램을 만들었었는데 쉽게 할수있는 방법이 있었다. 코드는 아래와같다... 일단 아래 include!!! #include #include CWebBrowser2 컨트롤을 m_Web 이라고 하고 아래와같은 코드를 void OnDocumentCompleteWeb(LPDISPATCH pDisp, VARIANT FAR* URL) 에 추가하면 된다. HRESULT hr; IHTMLDocument2* m_pHTMLDocument2 = 0; LPDISPATCH lpDispatch = m_Web.GetDocument(); if (lpDispatch) { hr = lpDispatch->QueryInterface(IID_IHTM..