처음 JSON데이터를 받아와서 시간으로 표현해 주기 위해 decoding을 Date타입으로 받아서 처리했더니 다음과 같이 2051년으로 나왔습니다.
Date타입의 이니셜라이저가 timeIntervalSinceReferenceDate를 기준으로 되면 저희가 받아오는 JSON데이터의 값이 약 50년을 나타내서 이 날짜가 나오는 것처럼 보였습니다
Date의 디폴트가 timeIntervalSinceReferenceDate여서 이렇게 표현 됐다고 판단하고 timeInterval을 extension하여 timeIntervalSince1970로 변환하여 해결하였습니다.
실제시간보다 30년 후로 나온 사진
2. 파일의 위치 변경에서 오류
xcode상에서가 아닌, 실제 파일을 직접 다른 폴더로 옮겨주었는데, 원래 위치에 있던 파일이 없어졌다고 파일이름이 빨간색으로 바뀌기만 하고 실제 옮겨진 파일을 인식하지 못했다. 그래서 해당 커밋을 revert 시키고 이번엔 xcode상에서 파일위치를 옮겨주니 잘 동작을 하였다. 앞으로 파일을 옮길 일이 있으면 꼭 xcode상에서 옮겨야 겠다.
3. TextView 에서 행끼리 줄어드는 현상 오류
attributedString의 사용에서 문제가 발생한 것으로 확인. 제목과 본문을 연결해주기 위해 "\n\n" 문자열 자체를 append 시켜주었더니 오류가 발생했다. 해당 문자열을 append가 아닌 diaryTitle 뒤에 더해주었더니 오류해결
let attributedString = NSMutableAttributedString(string: diaryTitle,
attributes: [NSAttributedString.Key.font: UIFont.preferredFont(forTextStyle: .title1)])
attributedString.append("\n\n") // 이 부분 때문에 오류가 발생
attributedString.append(NSMutableAttributedString(string: diaryBody,
attributes: [NSAttributedString.Key.font: UIFont.preferredFont(forTextStyle: .body)]))
return attributedString
}
오류화면
오류수정화면
4. ActivityViewTitle
ActicityViewController의 Title에 일기의 제목과 본문을 넣으려고 처음엔 아래 처럼 배열을 넣어줬더니 아래의 사진과 같이 윗부분은 Plain Text라고 나오고 저희가 넣어준 제목과 본문은 한줄로 나오는 현상이 발생했습니다.
그래서 찾은 방법이 MyActivityItemSource를 통해서 각각의 상황에 맞는 아이템을 지정해 주는 방법이었습니다. 여기서 우리가 원하는 plain Text의 위치에 제목이 들어가기 위해 MyActivityItemSource프로토콜의 메서드 중 subjectForActivityType을 title로 지정하고 여기에 제목을 넣어주는 방법을 통해 지금의 결과를 얻어 낼 수 있었습니다.
오류 상황
현재 상황
5. 코어데이터 마이그레이션 했을 때 문제
코어데이터 모델에서 날씨 아이콘을 추가 시키기 위해서 코어데이터 마이그레이션을 사용했습니다.
마이그레이션으로 Diary2로 맵핑모델도 만들어주니 날씨 아이콘을 사용할 수 는 있었지만 다음과 같이 이전 버전에서 만들어 주었던 코어데이터에 저장되어 있던 셀에 오류가 생겼습니다. 이전의 데이터들이 무작위로 섞이기도하고 문제1 처럼 없어지기도 했습니다.
마이그레이션을 하는 과정에서 문제가 있었던건지 아직 해결하지 못했기 때문에 좀 더 알아봐야 할 것 같습니다.
문제 1
문제 2
6. textView.text 가 mainThread에서 ?
textView.text를 가져오는 과정이 mainThread에서 실행되어야 한다는 오류가 떳는데, UI를 업데이트 할때는 메인 스레드에 접근한다고 알고 있었는데 이 경우에는 업데이트가 아닌 단순히 읽어오는 과정인데 이것도 반드시 메인스레드에서 해야하는지 이유를 모르겠어서 스택오버플로우 검색 결과 신경쓰지 않아도 된다는 내용이 있었습니다. 이걸 어떻게 해결 해야 할지 고민 해보겠습니다.
https://developer.apple.com/forums/thread/130695