[Day 57] 왜 데이터 치환이 안될까???
[Day 57] 왜 데이터 치환이 안될까???
😭 왜 데이터가 치환이 안될까?….
NSAttributedString에
담겨져 있는 UIImage
를 리사이징을하고 업로드를 한 후에 그 URL을 원래 있던 이미지대신에 URL을 바꿔주고 아카이빙을 했는데… URL로 바뀌지 않고 그대로 이미지까지 포함해서 아카이빙이
되어 버렸다..
문제의 원인
ReactorKit
에서
.setUploadResult → reduce → state 갱신이 비동기 흐름이라, 같은 Task 블록 안에서는 currentState.uploadedAttachmentURLs가 갱신되지 않는다…
즉, 업로드 후 바로 currentState를 참조
하니 빈 배열이 들어가 치환이 안 된 것.
두둥 드디어 해결….
currentState 대신 방금 업로드에서 받은 fresh 결과 (resultAttachments) 를 바로 사용해서 치환.
1
2
3
4
5
6
let contentForSave = self.replacingAttachmentsWithURLs(
in: self.currentState.content,
urls: resultAttachments
)
observer.onNext(.setUploadResult(thumbnail: resultThumb, attachments: resultAttachments))
let archived = try self.archiveAttributedString(contentForSave)
그냥 바보 같은 짓은 한거엿다… 또르륵…
🐾 오늘의 마무리: 춘식이의 개발 일기
뭐 그래도 하나 배웠으니!!! 럭키비키!
오늘도 오류 내며 자란 춘식이였습니다. 🐾
더 열심히 해서 좋은 iOS Developer가 되자!
혹시 이 글을 우연히 보게 되신 분이 있다면, 더 잘 만들 수 있는 팁이나 피드백은 언제든 환영입니다 :)
This post is licensed under CC BY 4.0 by the author.