DirTy™의 하루일과 40

[IOS] javascript에서 ios 로 호출하기.

하이브리드 앱을 하게되면 100% 쓸일이 있는 구문이다.보통 웹에서 네이티브로 무언가를 통지하고 싶을때 사용된다. javascript에서는 아래와 같이 한다.window.location = "jscall://callObjectiveCFromJavascript" 위의 javascript가 호출이 되면ios에서는 webView의 delegate메소드 webview:souldStartLoadWithRequest:naviationType 메소드를 호출된다.이때 특정 메소드가 실행되게 구현하면 된다. 테스트용이라 간단히 log출력만 하도록 해보자. - (void) callObjectiveCFromJavascript { NSLog(@"callobjective-c from javascript");} - (BOOL)w..

[IOS] objective-c, swift closure 구문

objective-c As a local variable: returnType (^blockName)(parameterTypes) = ^returnType(parameters) {...}; As a property: @property (nonatomic, copy) returnType (^blockName)(parameterTypes); As a method parameter: - (void)someMethodThatTakesABlock:(returnType (^)(parameterTypes))blockName; As an argument to a method call: [someObject someMethodThatTakesABlock:^returnType (parameters) {...}]; As a..

[IOS] APNS 인증서 만들기

APNS 인증서를 만들때마다 매번 까먹고 검색하는 것도 귀찮아서 내 블로그에 포스팅 해본다. 이포스팅을 하는데 사용한 환경은 아래와 같다. 1. OS X El Capitan ver10.11.1 2. XCode ver 7.1(7B91b) 3. iOS 9.1 1. 개인 인증서를 만들자. APNS 인증서를 만들기 위해서는 먼저 키체인을 이용하여 CertificateSigningRequest.certSigningRequest라는 인증서를 만들어야 한다. 이 개인인증서는 Notification인증서를 만들때 반드시 필요하니 우선 키체인(Keychain)을 실행한 후 아래와 같이 차례대로 따라 해보자. 키체인 실행 > 키체인 접근 > 인증서 지원 > 인증 기관에서 인증서 요청... 을 클릭. 디스크에 저장됨 + 본..

[IOS] containerview를 사용해보자.

항상 storyboard + xib 형식으로 프로젝트를 만들어왔다. 스터디를 갔다가 우연히 containerview에 대한 이야기를 들었다. 역시 사람은 아는만큼 보인다고 이런방식이 있는 줄 조차 몰랐고 사용해보니 오히려 더 깔끔하게 사용이 가능한것 같았다. 기본적인 사용법에 대해 알아보자. 일단 아래와 같이 storyboard를 이용하여 containerview를 추가해보자. auto layout도 아래와같이 테스트용으로 width = 200, height=180고정으로 주고 각 뷰를 centerX, centerY로 설정하자. containerview를 추가하면 아래와같이 자동으로 embed 된 segue가 자동으로 설정된다. 이제 embed 된 segue의 identifier를 아래와같이 testse..

[IOS] 데이터 저장방법.

아무것도 모르고 시작했을때... NSArray 의 writeToFile을 사용하여 plist파일을 강제로 만들어서 사용했었다... NSUserDefaults를 사용하면 자동으로 plist만들어 진다는 것을 알지도 못한체... iOS 에서 사용되는 다양한 데이터 저장방법에 대해 알아보자. 1. NSArray의 writeToFile사용. iOS를 아무 정보도 없이 하게 된 이후로... NSArray에 아래와 같은 메서드가 있었다. - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile; 당연히 아무것도 모르고 데이터 저장에 자주 쓰는 방법으로 지금까지도 쓰고있다. 뭐 방법은 간단하다. 간단히 아래에 예를 들어보겠다. NSMutableAr..

[IOS] ATS Issue 및 iOS9업데이트 후 알려진 버그들.

ios9가 업데이트 된지 2주가량 지났다.업데이트 후 기존 개발완료 된 앱들을 테스트 해본결과 http통신이 불가했다.하이브리드앱에서는 크리티컬한 에러기 때문에 빠른 대처가 필요하여 검색 및 맥부기의도움을 받아서 해결하게 되었다. 방법은 간단하다.해당프로젝트의 info.plist에 아래와 같은 목록을 추가하자. 클린 -> 빌드 후 테스트.간단하게 해결되었다. 이외의 알려진 이슈들도 정리해 본다. 1. canOpenURL 사용시 Errorinfo.plist에 LSApplicationQueriesSchemes에 해당 스키마를 등록해야 검색이 가능해 진다. 2. Bitcode ErrorBuildSetting에 Enable Bitcode 를 NO로 설정하면 해결됨. 3. Universal앱 바이너리 업로드시 o..

[IOS] 로컬라이징 localized + localized storyboard

영문 작업 요청이 들어왔다.보통 윈도우애플리케이션이나 웹쪽 프로젝트는 한/영키를 올려서 하는데 모바일쪽은 설정한지역 혹은 언어에 따라서 변환해 주면 된다. 스토리보드를 사용할 경우를 보자.아래와 같이 스토리보드를 클릭한후 인스펙터쪽을 보면 Localization이 보인다. 모두 체크!!! 체크하면 아래와같이 스토리보드 밑으로 3개의 파일이 생성된다.(Base)는 말 그대로 베이스가 되는 파일이라 그대로 스토리 보드의 UI들이 들어있고.(English)나(Korean)쪽은 아래와 같이 각 UI에서 사용되는 텍스트들이 자동으로 들어가있다. /* Class = "UILabel"; text = "로컬라이즈테스트1"; ObjectID = "iDJ-7h-9Bq"; */ "iDJ-7h-9Bq.text" = "Loca..

[IOS] 자주 쓰이는 수학함수들 및 define 값

ceil() - 올림값ceil(1.5) : 2.00ceil(-1.5) : -1 floor() - 버림값floor(1.5) - 1.00floor(-1.5) - -2.00 fabs() - 절대값fabs(1.5) - 1.50 sqrt() - 제곱근sqrt(4) - 2.00 pow(x,y) - 거듭제곱근(x의 y승)pow(2,10) - 1024.00 exp() - 지수값exp(1) - 2.72 기타 Define값#define M_E 2.71828182845904523536028747135266250 /* e */ #define M_LOG2E 1.44269504088896340735992468100189214 /* log 2e */ #define M_LOG10E 0.43429448190325182765112891..