SeSAC2DiaryRealm 프로젝트의 UserDiaryRepository.swift 파일
item: UserDiary를 매개변수로 받아서 사용하는데, 이 때 UserDiary는 클래스 타입.
self.localRealm.delete(item) 코드로 테이블의 행(즉, realm에서 record)을 지우는 경우, 참조해왔던 item메모리도 같이 지워진다.
만약에 removeImageFromDocument(fileName: "\(item.objectId).jpg") 에서, let id = item.objectId 선언 안하고 그냥 item.objectId.jpg로 쓰는 경우, 메모리는 윗줄에서 이미 날라간 상태라 nil.objectId가 되는 꼴이다.
따라서, let id = item.objectId 을 맨 위에서 선언해주어 item.objectId를 '값'으로 남겨줘야 이걸 가져와서 쓸 수 있다.
여기선 deleteItem(item: self.tasks[indexPath.row])를 쓴 것에 유의.
값 전달처럼 해준 것.
'iOS > iOS Swift 개발 일기' 카테고리의 다른 글
[iOS swift] snapkit이용 TabBarViewController 만들기 programatically (without storyboard) (0) | 2022.08.27 |
---|---|
프로퍼티 옵저버 didSet, willSet (0) | 2022.08.27 |
데이터베이스 CRUD (0) | 2022.08.23 |
[iOS swift] actionsheet 액션시트 만들기 (0) | 2022.08.23 |
[iOS swift UIKit] UIView 배경색 랜덤으로 변경하기 (0) | 2022.07.21 |