CloudKit엔 다이렉트로 이미지나 에셋을 저장할 수 없다
CKAsset으로 변환을 해줘야함
보통 Records에서 값을 가져올 때 필드 같은 밸류는 바로 다운이 되는데
CKAsset같은 밸류가 있으면 url로 넘어간다
에셋 폴더에 있는 이미지를 업로드 해봅시다
에셋 폴더에 있더라도 파일매니저로 저장을 한 다음에 그 url을 가지고
저장이 필요함
private func addItem(name: String) {
let newFruit = CKRecord(recordType: "Fruits")
newFruit["name"] = name
guard
let image = UIImage(named: "woozoobro"),
let url = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask).first?.appendingPathComponent("woozoobro.png"),
let data = image.pngData() else { return }
do {
try data.write(to: url)
let asset = CKAsset(fileURL: url)
newFruit["image"] = asset
saveItem(record: newFruit)
} catch let error {
print(error)
}
}
이렇게 구성을 해주는데 png로 했을 때 다운이 이상하게 되는 것 같다.
이미지를 jpg로 바꿔줌.
record 에서 파일 다운 받았을 때 이미지가 보여야하는데 제대로 안보이는 것 같다. png문제는 아녔던듯 나중에 해결해봅시다
record가 fetch될 때 프린트를 찍어봅시다