3월, 2019의 게시물 표시

[iOS] Xcode 10.2 Error (Could not build module 'WatchKit')

이미지
Could not build module 'WatchKit' Xcode 10.2 업데이트 이후 발생한 Could not build module 'WatchKit'  Error 정보 및 해결 방법 공유 해결방안 링크 (참조) https://stackoverflow.com/questions/55352740/xcode-10-2-gnu-style-inline-assembly-is-disabled Simulator 에서만 발생한 Error, 실제 Device에서 실행시 발생하지 않음. 해당 기능 Other C Flags  -fgnu-inline-asm 기입으로 인한 Simulator 실행 가능함. #. (개인생각) 매번 Xcode 업데이트 할 때마다 생각치 못한 Error들이 발생하는 것 같다........ 1. Simulator 실행시 ( GNU-style inline assembly is disabled ) 에러 발생. 2. 해결방법 Watch Target(Extenstion) > Build Settings > Other C Flags    -fgnu-inline-asm

[Swift 공부] Data Type-safe, typealias, Tuple

이미지
데이터 타입 안심 Swift는 데이터 타입을 안심하고 사용할 수 있는 Type-safe 언어이다. 타입을 안심하고 사용할 수 있다는 말인데, 예를 들어 int 타입변수에 String 타입을 대입하면 컴파일 오류가 발생한다. 타입 별칭 (typealias) 사용자가 임의로 데이터타입에 별칭을 부여할 수 있다. (기존에 Objective C 에서는 Block 값을 지정해서 쓰고 있었다.) 기존에 사용하던 데이터타입과 임의로 지정한 데이터타입 모두 사용가능하다. typealias MyInt  =   Int typealias YourInt  =   Int typealias MyDouble  =  Double let  age:MyInt  =   31 var  yourAge:YourInt  =   20 yourAge  =  age  // 같은 Int 타입이기 때문에 가능함. let  record:MyDouble  =   89. 5   // 다른 타입도 별칭 사용가능함. cs 튜플 (Tuple) 튜플은 타입의 이름이 따로 지정되어 있지 않은 사용자가 마음대로 만드는 데이터 묶음 타입니다. 구조체의 방식과 유사하다. // ------- 1. 튜플 ---------// // 3가지 Type을 갖는 튜플 var  person:( String ,  Int , Double)  =  ( "KimJW" ,  31 ,  170. 8 ) // 인덱스를 통한 데이터 접근 가능 print ( "이름 : \(person.0), 나이 : \(person.1), 키 : \(person.2)" ) // 결과) 이름 : KimJW, 나이 : 31, 키 : 170.8 // 인덱스를 통한 값 할당 가능 person. 0   =   "TestName" person. 1   =   100 person. 2  

[Swift 공부] 콘솔 로그 print() 와 dump()

지금까지 Objective C 에서 콘솔로그는 대체로 NSLog 를 사용하고 있었는데 , Swift 언어에서 부터 NSLog 를 사용하지 않고 , Print 혹은 dump 함수를 통해 콘솔로그를 출력할 수 있어 간단하게 알아보고자 한다 . 기존에 Objective C 에서는 NSLog 를 그냥 사용하기 않고 , 아래와 같이 .pch 파일에 NSLog 를 재정의 하여 ,   사용하곤 했다 . —— 프로젝트 .pch ——- 1 #define  NSLog ( s, ... )  NSLog ( @ "<%@:(%d)> %@" , [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] ) cs ——————————— 재정의한 이유를 결과로 보여드리면 , ClassName (Line) 줄이 표기되고 안되고 차이를 느낄 수 있다 . 1 2 3 4 // 기본 NSLog 2019 - 03 - 05   21 : 37 : 03. 779493 + 0900  SampleProject[ 26217 : 131080 ] Test  NSLog // 재정의 NSLog 2019 - 03 - 05   21 : 34 : 15. 902508 + 0900  SampleProject[ 24138 : 118908 ]  < RootViewController.m:( 43 ) >  Test  NSLog cs 프로젝트를 진행하면서 NSLog 를 무심코 남기지만 ,   추후 유지보수 및 여러명과 작업을 진행할때 내가 하지 않은 곳을 찾을 떄 해당 Class 찾는 부분의 시간을 단축시켜주는 역할을 도맞아