Xcode

guard let a = b else { return } 이런 코드의 경우 옵저버 바인딩에 실패한다면 어디서 오류가 발생하였는지 알기 힘들다. 그래서 return 전에 log를 찍어, 값을 추적해줄 필요가 있다. 1. os_log import OSLog os_log("에러 발생") 그런데 이를 쓰려면 모든 파일에 import OSLog 를 하여야한다. 따로 객체로 분리해주는 편이 좋을 것이다. 2. Logger : 에러 발생 부분 바로 알 수 있는 방법 OSLog에서 제공하는 logger 객체를 활용해보자. enum Log { func make() -> Logger { return Logger() } } logger 객체는 logger 객체가 생성된 부분에서의 위치로 이동해준다. guard let tit..
1. 문제 상황 1-1) shape 객체를 아카이빙하려고 하였다. class Shape : NSObject, NSCoding { private var identifier : String private var point : Point private var size : Size } 1-2) 그런데 encode이 매번 실패하였다. 디버거로 확인해보니, 내가 만든 struct 타입에서 encode를 실패하는 것을 확인할 수 있었다. func encode(with aCoder: NSCoder) { aCoder.encode(identifier, forKey: "identifier") aCoder.encode(point, forKey: "point") // 실패 aCoder.encode(size, forKey: "s..
PushedGun
'Xcode' 태그의 글 목록