Post

[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.