본문 바로가기

Programming

(167)
Kotlin function 의 return 타입을 void 로 하고 싶어요 callback lambda 를 function의 parameter로 넘겨서 사용하려고 합니다. lambda의 정의는 간단하죠. 함수 정의 fun saveFile(value: Int, callback: (value: Int) -> Void) { } 함수 사용 functionName(10, { value -> }) 이렇게 하면 당연히 될줄 알았습니다. 대부분의 언어에서 return 값이 없으면 void 또는 빈값을 해서요... https://kotlinlang.org/docs/reference/functions.html#unit-returning-functions return 값이 없을 때는 Unit type 으로 return type 을 지정해야 한다고 되어 있습니다. 함수 정의 fun saveFile(..
Kotlin class 가져오기 (Java에서 ClassName.class) 최근에 안드로이드 프로젝트를 새로 시작했습니다.혼자하고 작은 프로젝트라서 Kotlin으로 하고 있습니다. (유지보수는 누가하지...)Swift와 비슷해서 시작했는데 다른 부분이 더 많네요.여러 부분에서 막히고 문서 보고를 반복하다가 방금 찾아 본 것을 남겨봅니다. Android 에서 새로운 Activity를 실행하려고 할때 Activity 의 class type을 넣어줘야 하는데요.Java Intent intent = new Intent(this, MainActivity.Class); Kotlin val intent = Intent(this, javaClass()) 위 방법은 현재 deprecated 입니다. 현재 버전에서는 다음과 같이 사용해야 합니다. Kotlin val intent = Intent(..
ERROR ITMS-90206 "Invalid Bundle. The bundle at 'name.app/PlugIns/Extension.appex' contains disallowed file 'Frameworks'." Action Extension Target을 추가하여 이전까지 문제 없이 사용하고 있었다.오늘 업로드를 하는 과정에서 다음과 같은 오류가 발생하면서 더 진행이 되지 않는다......검색과 삽질 끝에 해결은 했다.Extension 자체는 Framework를 copy하지 않기 때문에 App이 가지고 있는 Framework를 사용해야 한다고 한다.cocoapods로 Extension Target에 framework를 추가했었는데 이 부분이 문제였다.이전 까지 문제 없다가 iOS9 출시 후 부터가 문제가 되기 시작했다.Extension Target에서 cocoapods의 흔적을 다 지우고 다음 링크에 있는 방법대로 하면 된다.https://hanseihee.wordpress.com/2015/01/14/xcode..
Error loading the plugin with path `/Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-0.6.0/lib/cocoapods_plugin.rb`. cocoapods 0.38.2 로 업데이트 후에 pod 명령어만 실행하면 아래와 같은 오류가 발생한다. Chopeui-MacBook-Pro:iOS-classic Chope$ pod --version --------------------------------------------- Error loading the plugin with path `/Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-0.6.0/lib/cocoapods_plugin.rb`. LoadError - cannot load such file -- /Library/Ruby/Gems/2.0.0/gems/cocoapods-stats-0.6.0/lib/cocoapods_plugin.rb /System/Librar..
Swift keyboard notification Swift version : 1.2iOS version : 8.4 Swift 문법도 익숙치 않은데 NSNotificationCenter 사용하려는데 막히는 부분이 많고... Notificaiton 에서 keyboard 관련 정보 가져오려는데.... 왜이리 오류가 많은지.. 다음과 코드가 동작함을 확인하였으니 참고하세요. NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name: UIKeyboardWillShowNotification, object: nil) func keyboardWillShow(notification: NSNotification) { let userInfo = no..
ReactiveCocoa 한번 써보자 ReactiveCocoa 교육을 듣고 잊기 전에 예제를 만들었습니다.시나리오로그인id, pw 값이 있으면 Login 버튼이 활성화id, pw 값 중 하나라도 없으면 login 버튼은 비활성화카운터0.5 초로 반복하여 count0.5 초 마다 red 가 show/hide를 반복2.5 초 마다 blue가 show/hide를 반복10 초 후에 timer 종료red, blue 를 green으로 표시 https://github.com/chope-yoonhg84/reactiveCocoaExample1 해당 예제 커밋https://github.com/chope-yoonhg84/reactiveCocoaExample1/tree/99e0d8c880795c75a9ae91dac18425128ee3ccac 설명은 추후에....
Could not load NIB in bundle *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle (loaded)' with name 'viewController' and directory 'Main.storyboardc'' Storyboard를 사용하고 있는데 지금까지 없던 위와 같은 오류가 발생했네요.폰에서는 문제가 없는데 iPad2 7.1 시뮬레이터에서만 위와 같은 오류가 발생합니다. Storyboard를 수정한 것과 관련된 것 같은데 정확한 이유는 알 수 없지만.... 해결 방법은 간단합니다. Storyboard가 빌드된 storyboardc가 없어지도록 캐시를 ..
앱 실행 중 언어 설정 변경 다국어 지원을 위해 NSLocalizedString 을 하면 아이폰 디바이스의 언어 설정으로 문자열을 가져옵니다.만약 앱 안에서 언어 설정을 변경하고 싶다면 어떻게 해야 할까?? 검색을 해보면 가장 많이 나오는 방법은 아래와 같다. [[NSUserDefaults standardUserDefaults] setObject:@[ @"ko" ] forKey:@"AppleLanguages"]; [[NSUserDefaults standardUserDefaults] synchronize]; NSLocalizedString이 AppleLanguages에 설정된 언어에서 가져오므로 잘 동작한다.하지만 문제는 앱을 재 실행해야 한다는 것이다. 설정 하나 바꿨다고 앱을 재 실행하라고?? 내가 찾은 방법은 다국어를 가져올때 ..