๋ฌธ์
์ ์ ๊ฐ ํ ์ํ์ ํ ๋ฒ๋ง ๋ก์ปฌ DB์ ์ถ๊ฐํ ์ ์๋๋ก ๊ตฌํํ๊ธฐ ์ํด ์ค๋ณต ์ถ๊ฐ ๋ฐฉ์ง๋ฅผ ์ด๋ป๊ฒ ํ ์ ์์๊น ๊ณ ๋ฏผํ๋ค.
API์์ ์ ๊ณตํด ์ฃผ๋ ๊ฐ๊ฐ์ ID๋ฅผ ํตํด ์ถ๊ฐ ์ฌ๋ถ๋ฅผ ๊ฐ๋ ค๋ผ ์ ์์ง ์์๊น ์๊ฐํ๋ค.
์ํ๋ผ๋ฆฌ์ผ ๋น์ฐํ ID๊ฐ ๊ฒน์น์ง ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ง๋ง, ๊ณผ์ฐ TV ์๋ฆฌ์ฆ๋ ๋คํ๋ฉํฐ๋ฆฌ ๋ฑ ๋ค๋ฅธ ์ํ๋ค๋ ID๊ฐ ๊ฒน์น์ง ์์๊น..? ํ๋ ์๋ฌธ์ด ๋ค์๋ค.
๋๋ ์ํ์ ๊ทธ ์ธ ํ์
์ ์ํ๋ค๊น์ง ํ๊บผ๋ฒ์ ๊ฒ์์ด ๊ฐ๋ฅํ๋๋ก ๊ตฌํํ๋๋ฐ..
์ ๋ณด๋ฅผ ์ ๊ณตํด ์ฃผ๋ API ๋ฌธ์๋ฅผ ์ดํด ๋ณด์์ง๋ง ๋ช ์๊ฐ ๋์ด ์์ง ์์๋ค.
๊ทธ๋๋ ํน์ ๋ชจ๋ฅธ๋ค๋ ์๊ฐ์ผ๋ก API์ ํฌ๋ผ์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ..
๐ฌ IDs are only unique within their own namespace (๊ฐ์ namespace์ ์๋ ๋ฏธ๋์ด๋ผ๋ฆฌ๋ง ID๊ฐ ๊ฒน์น์ง ์๋๋ค.)
..๋ผ๋ ๊ฒ์ ์์๋ผ ์ ์์๋ค.
ํด๊ฒฐ
// MediaRepository.swift
func fetch() -> Results<Media> {
return realm.objects(Media.self)
}
func sameMediaExists(as selectedMedia: Media) -> Bool {
let existingMedia = fetch().where {
$0.mediaType == selectedMedia.mediaType &&
$0.TMDBid == selectedMedia.TMDBid
}
return !existingMedia.isEmpty
}
TMDB IDs: IDs are only unique within their own namespace
→ ๊ฐ์ namespace์ ์๋ ๋ฏธ๋์ด๋ผ๋ฆฌ๋ง ID๊ฐ ๊ฒน์น์ง ์๊ธฐ ๋๋ฌธ์,
mediaType(movie, tv)๊ณผ TMDB ID๊ฐ ๋ชจ๋ ๊ฐ์์ง ๋น๊ตํ์ฌ ๊ฐ์ ๋ฏธ๋์ด์ธ์ง๋ฅผ Bool ํ์ ์ผ๋ก ๋ฐํ
๋ฏธ๋์ด ํ์ ๊ณผ ID ๋ชจ๋๋ฅผ ๋น๊ตํ์ฌ ์ค๋ณต ์ฌ๋ถ๋ฅผ ํ๋จํ ์ ์์๋ค..!
์๋ฒ์์ ์ฃผ๋ ID์ ์กด์ฌ ์ฌ๋ถ์ ์์คํจ..์ ๊นจ๋ฌ์๋ค..
'๐งฏ Troubleshooting' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Cheliz] View ๊ด๋ จ ์ฌ์ฌ์ฉ์ฑ ๋์ด๊ธฐ (0) | 2023.02.09 |
---|---|
[Cheliz] UITabBarItem์ SF Symbol ์ฌ์ด์ฆ ์กฐ์ Issue (0) | 2023.02.09 |
[Cheliz] UICollectionView leading/trailingSwipeActions - Realm Read/Delete (0) | 2023.02.09 |
[Cheliz] UITableView ์ฌ์ฉ์ฑ ํฅ์ (0) | 2023.02.09 |
[Cheliz] UICollectionViewCell ๋ด ๊ฐ์ฒด์ action ์ฒ๋ฆฌ (0) | 2023.02.09 |