ios개발 92

<ios개발> Swift언어: keyPath, 키패스, \

[learnappmaking.com/swift-keypath-how-to/] 처음에 \ 이 기호가 뭔지 이름도 몰라서 검색하기가 힘들었다... 키패스는 무엇인가? struct Videogame { var title:String var published:String var rating:Double } let cyberpunk = Videogame(title: "Cyberpunk 2077", published: "2020", rating: 5) let titleKeyPath = \Videogame.title print(cyberpunk[keyPath: titleKeyPath]) // Output: Cyberpunk 2077 Keypaths in Swift are a way of storing a refere..

ios개발 2020.12.09

<xcode 빌드 에러> it may have been damaged or it may have triggered a bug in the Swift compiler when it was produced

Failed to build module 'ㅎㅎ임의 라이브러리' from its module interface; it may have been damaged or it may have triggered a bug in the Swift compiler when it was produced 위와 같은 에러가 떴다. 근데 이상한게 simulator에서는 잘 되는데 device에서는 잘 안되더라.. ㅠ 왜그런걸까. 처음에 이렇게 생각했다. 음 ? 해당 모듈의 스위프트 버전과 내 xcode 버전이 다른게 문젠가?? -> 이게 뭔 소린지도 모르겠지만 그래서 xcode 버전도 바꾸고, ios 버전도 업뎃해보고 그랬는데... 사실 원인은 pod --version으로 확인했다. 팟 버전이 문제였다. sudo gem i..

<xcode 빌드 에러> cocoa Realm 빌드 에러 분석

...app/Pods/Realm/include/core/__bit_reference:176:62: No member named '__libcpp_ctz' in namespace 'std::__1'; did you mean '__libcpp_wcsstr'? ...app/Pods/Realm/include/core/__bit_reference:1119:7: No template named '_If' 위와 같은 에러가 발생했다. 구글 검색어를 No member named '__libcpp_ctz' in namespace 이걸로 하면 검색 결과가 딱 한개 나왔는데, [github.com/realm/realm-cocoa/issues/6664] 이거다. 읽어 보면 xcode 빌드 클린, pod update, pod ..

<함수형 프로그래밍> 리스너 콜백?

FRP 입문자를 위한 종합 안내서, 스티븐 블랙히스, 앤서니 존스 지음의 책을 읽는 중이다. 책 초반에, "모든 FRP 시스템이 내부적으로 리스너를 사용하지 않는다"는 문구가 있는데, 리스너랑 콜백이 무엇인지 알아보려 한다. [onlyfor-me-blog.tistory.com/47] 이분이 이미 조사를 많이 하셨다... 위 분의 결론 : - 콜백 메서드는 다른 함수에 인수로 넣을 수 있는 메서드고, 보통 on으로 시작하는 것들이 콜백 함수다. 버튼 클릭 등 이벤트가 발생하면 이에 맞는 작업을 수행하기 위해 코드를 작성하는 곳이다. - 리스너는 특정 이벤트를 처리하는 인터페이스로, 추상 메서드인 onTouch()를 받아서 실행하며 이벤트 핸들러라고도 한다. 사용자와 상호작용하는 이벤트 발생 시 안드로이드 ..

<watchOS> WKInterfaceController : watchOs에서는 뷰컨트롤러 대신 컨트롤러가 있다....?

와치 개발중에 스토리 보드를 이용하는데, 기존과 다르게 뷰컨트롤러 관련 클래스랑 메소드들이 없어서, 찾아보니 워치는 다른걸 사용한다. WKInterfaceController An interface controller serves the same purpose as a UIViewController object in a UIKit app, except that it does not manage any actual views. It runs in your WatchKit extension and remotely manages the behavior associated with an interface controller in your Watch app’s storyboard file. You subclass ..

<아키텍처> data driven programming vs data oriented design

advanced ios app architecture를 보다 보면 data driven programming이란 말이 나온다. 사실 다른 데서도 많이 본듯. 근데 저게 궁금해서 검색하다 보면 data oriented랑 단어가 비슷해서 궁금했다. 둘다 몇시간 찾아봐도 영어로 설명되어 있어서 이해가 잘안됐지만 그나마 된 내용을 간단하게 정리하면. 일단 참고한 링크들은,[stackoverflow.com/questions/1065584/what-is-data-driven-programming], [gamesfromwithin.com/data-oriented-design], [stackoverflow.com/questions/1641580/what-is-data-oriented-design/1641615#1641..

[맥 사용법] source ~/.bash_profile가 무엇인가.

환경 변수 설정인건 아는데 좀 원리를 이해해 보고 싶었다. 상단데 보면 -bash라고 있다. bash가 뭐지 , 근데 안내로 zsh가 디폴트 쉘이라니 쉘은 사람이 컴퓨터에 명령을 내릴수 있도록 해주는 인터페이스를 제공하는 프로그램이다. 사용자가 입력한 명령어를 커널에 전달하는 역할. 그중 한 종류가 bash쉘이다. bash의 프롬프트는 $인데 컴퓨터가 입력을 받아들일 준비가 되어있다는 표시라 한다. $PATH 같은 $는 뭐지? 검색해도 못찾았는데 추정상 환경변수 표시하는 방법같다. source ~/.bash_profile 를 알아보자. source는 현재 쉘에서 전달된 파일의 내용을 실행하는 명령어이다. 다른 bash script를 import하는 행위를 source라 한다. 그래서 저 명령어는 bash..

<함수형 프로그래밍> 백준 9461번

이건 음 재귀함수를 이용해 해결했다. 그런데 메모이제이션 부분은 mutable하게 구현되서 마음에 들지 않는다. 꽤나 찾아봤는데 메모이제이션을 immutable하게 할수 있는 방법을 모르겠다. 이 문제를 통해서 재귀함수를 이용해 immutable하게 구현할수 있다는 것을 한걸음 느끼게 된거같다. 파일에서 자동으로 입력 받는 부분이나, 입력부를 처리하는게 제일 까다로웠다. import Foundation /* let file = "input.txt" var text = "" if let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first{ let fileURL = dir.appendingPathComponent..