목록개발통합환경(IDE)/XCode (9)
일모도원(日暮途遠) 개발자
사용자 UI를 중시하는 애플이 만드는 개발자용 툴인 XCode를 보면 확실히 개발자는 애플에서 말하는 사용자가 아닌걸 확인할수 있다. 안드로이드 스튜디오와 비교하면 여러 기능들이 많이 부족한걸 볼수 있다. 코드블럭 숨기기도 그렇다. 평소에 단축키를 쓰곤 했는데, 단축키도 귀찮고 해서 UI로 할려고 알아보니 코드블럭 숨기기인 화살표가 안보여서 한참 헤맸다. 단축키는 아래와 같다. Fold ⌥ ⌘ ← option + command + left arrow Unfold ⌥ ⌘ → option + command + right arrow 메뉴는 아래에 있다. (왜 Fold all은 없냐구!!!) UI로 할려면 아래처럼 하면 된다. Code folding ribbon을 체크해줘야 한다. 왼쪽은 코드폴딩 리본이 없는것..
텐서플로우에 있는 iOS프로젝트를 한번 열어볼려고 했는데 한번에 잘 안되어서 기록해둔다. https://github.com/tensorflow/examples/tree/master/lite/examples/object_detection/ios 원하는 경로에 소스를 복사한다. >git clone https://github.com/tensorflow/examples.git 여러 소스들이 같이 포함되어 있어서, 내가 열려고 하는것은 아래 경로에 있다. (xcworkspace파일이 없고 그냥 xcodeproj파일만 있다.) 잘만든 소스들이라, 이렇게 ReadMe가 상세하다. 잘 읽어야 하는데, 안 읽고 하다가 여러 오류를 겪고 겨우 실행했다. README.md # TensorFlow Lite Object Det..
아래처럼 코드가 있다. let textStorageString = layoutManager.textStorage!.string as NSString NSString로 변환했기에 쉽게 값을 볼수 있을줄 알았는데, textStorageString에 커서를 갔다대니, NSBigMutableString이라고 나온다. ">"을 눌러서 계속 들어가봐도 내가 생각하는 문자열이 보이지 않는다. XCode의 콘솔창에서 print textStorageString를 해봐도 똑같다. (lldb) print textStorageString (NSBigMutableString) $R1 = 0x00006000030ebcc0 class name = NSBigMutableString 이럴때는 print대신 po를 사용해보자. prin..
디버드모드와 디버그 모드가 아닌것(보통은 릴리즈모드)를 구분하는것은 Build Settings의 Preprocessor Macros를 보면 알수 있다. (가끔 GCC_PREPROCESSOR_DEFINITIONS라는 말도 쓰는데 이는 Preprocessor Macros는 같은걸 말한다.) Macro를 정의하는값은 최종적으로 Resolved에 있는것이 사용된다. Macro는 여러곳에서 정의할수 있는데, 그 순서는 다음과 같다. Resolved
기존의 타깃을 복사하여 새로 타겟을 만들면 Plist파일 생기는데 이름에 copy-라는 문구가 있다. copy-라는 문구가 보기 싫으면 아래처럼 바꾸어 주자. 바꾸는 방법은 plist파일을 선택후 마우스 클릭을 하던지 그냥 엔터키만 치면 수정가능한 상태로 나온다. 근데 Plist파일명을 바꾸면 아래처럼 타겟의 Build Settings로 가서 Packaging밑에 있는 Info.plist File에서도 바꾼 파일명으로 수정해야 한다. 안그러면 이전 파일명으로 Plist파일 찾기 때문에 에러가 난다.
세로로 선택하여 일괄변경하기 아래처럼 var가 여러줄에 있을때 이를 전부 let으로 바꾸고 싶다고 하면 Command + Option키를 누른상태에서 마우스로 세로로 드래그를 하면 아래처럼 선택을 할수 있다. 선택된 상태에서 타이핑해서 문자를 변경한후 ESC키를 누르면 된다. "
가끔 ViewController랑 xib파일이 어디서 연결이 되어있는지를 까먹을때가 있다. 예를 들어 아래처럼 파일이 있을때를 HiddenVideoPasswordViewController.xib파일을 열고 "File's Owner"를 선택하고 "Identity Inspector"을 선택하고 Custon Class가 보인다. 여기서 xib파일과 연결될 ViewController를 선택하면 된다. 아주 오래전에는 XCode와 Interface Builder가 분리되어 있었다. 그때는 xib파일 대신 nib파일을 사용하였고 "닙파일"이라고 불렀다. 왠지 모르겠지만 xib파일이 도입되고도 그냥 ‘닙 파일’ 이라고 계속 불렀다. (한국에서는 "xib"을 그대로 읽으면 욕설같음^^;) XIB : XML Interf..
폴딩 메뉴는 Editor-Code Folding안에 있다. 그냥 폴딩하는건 단축키로 ⌥ ⌘◀︎ (옵션 + 커맨드 + 왼쪽 화살표) 이다. 주의할점은 폴딩할때 마우스 커서를 여는 중괄호(Brace) 옆에 두어야한다. 모든 함수를 폴딩하는건 쉬프트키만 추가하면 된다. ⌥ ⇧⌘◀︎ (옵션 + 쉬프트 + 커맨드 + 왼쪽 화살표) 이다. 이건 마우스 커서 위치에 상관없이 다 된다. 클래스나, 구조체등도 전부 다 폴딩하는걸 찾고 있는데 잘 모르겠다.