-
Convenience Initializer를 사용하는 경우I'm a Developer/iOS & macOS 2017. 10. 9. 23:15
말 그대로 편의를 위해서 사용합니다.Convenience Initializer에 대해 iOS 커뮤니티에서 질문 했을 때, 다음과 같은 답변을 받았습니다."내 입맛에 맞는 init을 만들기 위해 사용합니다."이 한마디와 다음의 예제코드로 Convenience Initializer가 제 머릿속에서 정리되어버렸네요. extension UIActivityIndicatorView { convenience init(activityIndicatorStyle style: UIActivityIndicatorViewStyle, scale: CGFloat) { self.init(activityIndicatorStyle: style) self.scale(scale) } func scale(_ value: CGFloat) { ..
-
OptionalI'm a Developer/iOS & macOS 2017. 10. 9. 20:51
Optional과 친해지기어떤 값이 있거나(not nil) 어떤 값도 없거나(nil)구현에 대한 정의는 다음과 같이 enum을 써서 정의할 수 있다. (Optional은 단지 enum이라고 생각하자.)enum Optional { // T는 어떤 타입도 될 수 있는 Generic 타입이다. case None case Some(T) }즉, None일 때는 아무 값도 없는 nil인 상태이고, Some(T)는 Optional이 무엇인가 값이 있는 상태인 것이다. "무엇인가 값이 있다는 사실" 만으로 Optional에 있어서 nil과 반대되는 하나의 값이 되는 것이다.위의 정의를 활용한 예제 코드이다.let x: String? = nil // 1 let x = Optional.None // 1' let x: St..
-
Google Cloud Speech API (STT library)와 Unicode 인코딩 문제를 해결한 후기I'm a Developer 2017. 5. 26. 03:29
대학원에서 프로젝트 수행하면서 몇일을 골머리썩었네요. 현재 프로젝트에서는 라즈베리파이3를 활용하여, 음성인식을 통해 지하철 목적지를 말하는 기능이 필요했습니다.그래서 Google Cloud Speech API로 음성인식을 통해 목적지를 Text로 바꿔주는 기능을 구현해야했는데 한 가지 문제가 발생했습니다.(물론 이전에 Mic streaming으로 구현하는 것도 문제가 있었는데, github에 issue사항 뒤지다가 안된다는 소스를 줏어서 돌렸는데 잘되었습니다.) 이 부분이 문제의 화면입니다.마이크 입력으로 응답을 받아온 부분입니다.영어(en-US)로 할 땐, 깔끔하게 잘 받아왔는데, 한글로하니까(ko-KR)... 한글 인코딩을 못 읽더군요.... (망할 Google Cloud Speech API에서 아직..
-
지하철 공공데이터 사용하기I'm a Developer 2017. 4. 26. 13:42
지금부터 지하철 OpenAPI 중에서 최단경로 API를 불러와 보겠어요. 가장 먼저 OpenAPI 호출하기 위해서는 서울시에 회원가입을 해야해요.그리고 인증키를 신청해야해요.http://data.seoul.go.kr/openinf/develop/developer.jsp이곳에 들어가면 로그인을 하라고 할텐데 로그인을 하고 링크로 들어가보아요.아래를 작성하고 이제 본격적으로 호출을 해봅시다. 그럼 다음과 같이 확인이 가능해요! 지하철 최단 경로 정보 API 샘플URL 은 다음과 같습니다. http://swopenAPI.seoul.go.kr/api/subway/인증키값/xml/shortestRoute/0/5/출발역/도착역 요청인자http://swopenAPI.seoul.go.kr/api/subway/인증Key..
-
우분투 윈도우 멀티 부팅 시 윈도우가 GRUB에 안보일 경우I'm a Developer/Linux 2016. 3. 11. 19:02
수 많은 블로그를 참고하였고 해답을 얻는데 실패하였다. 처음에는 GRUB조차 뜨지 않아서 boot-reapir를 사용하여 GRUB를 생성하였으나[이 부분은 다른 블로그 참고] GRUB 목록에 아래 화면의 Memory test까지 밖에 보이지 않았다. 결국 해답은 이것. sudo update-grub 위 명령어로 grub를 업데이트하면 컴퓨터에 설치되어있는 타 OS를 찾아준다.grub를 업데이트 해주니 윈도우 부트로더를 찾았다 ㅎㅎ 짠
-
Document Interface에서 Dialog 다루기I'm a Developer/MFC 2015. 8. 18. 19:49
SDI에서(아직 MDI는 다루지 않았으므로 SDI라고 그냥 말함) Dialog를 다루는데 순서가 헷갈려서 간단하게 정리해야 겠다는 생각이 들었다. 1) 메뉴에서 리소스 추가를 누른다. 2) [ Dialog - 새로 만들기 ]를 누른다. 3) 다음과 같은 화면이 나오면 Dialog상자 배경을 더블 클릭하여 클래스 마법사를 띄운다. 4) 다음과 같이 뜨면 클래스 이름을 설정해준다. 그러면 나머지는 알아서 설정된다. 5) 마침을 누르게되면 Dialog와 연결된 클래스가 만들어진다. 6) 대화상자를 메뉴와 연결하고 싶다면 리소스에서 [ MENU - IDR_MAINFRAME ]에 가면 메뉴표시줄을 구성할 수 있다. 7) 내가 원하는 메뉴를 만들고 메뉴의 속성에 보면 ID값을 원하는 이름으로 바꿔준다. 8) 이제 ..
-
fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다.I'm a Developer/MFC 2015. 8. 18. 16:32
fatal error LNK1120: 1개의 확인할 수 없는 외부 참조입니다. 외부 기호를 확인할 수 없습니다. 내가 경험했던 위의 에러가 나는 경우는 주로 어딘가에서 사용한 함수에 대해 매칭이 되지 않은 경우였다. NullPointerException과 비슷한 경우인듯하다. MFC가 아닌 다른 곳에서도 이 에러는 함수를 어디선가 사용했지만 해당 함수에 대한 정의가 없을 때 뜬다. 클래스마법사에서 메시지 처리함수를 정의해놓은 오른쪽 박스에 보면 WM_PAINT메시지를 처리하는 메시지처리기 OnPaint 함수가 선언되어 있다. 이렇게 CView 구현부에서 OnPaint 함수가 없기때문에 참조할 수 없다고 나오게 된다. 따라서 없어진 함수를 잘 찾아서 구현해준다면 정상적으로 작동할 것이다. 이렇게 CView..