URLSession
์ผ๋ก ๋ฐ์์จ data๋ฅผUITableView
๋ก ํ์- ๋ฐ์์ฌ ๋ฐ์ดํฐ๋ฅผ
Prefetch
ํ์ฌ ์ต์ ํ .insetGrouped
์คํ์ผ์UITableView
๋ฅผ ํ์
์ ์ฌ์ ์ผ๋ก ์ค๋ ์คํ๋๋ ๋ฐ์ดํฐ ์์ ์ ์กฐ๊ธฐ์ ์์ํ ์ ์๋๋ก ๋ฏธ๋ฆฌ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ ํ๋กํ ์ฝ
tableView(_:cellForRowAt:)
๋ฉ์๋๊ฐ ์คํ๋๊ธฐ ์ ์ prefetch๊ฐ ๋น๋๊ธฐ์ ์ผ๋ก ์คํ๋๋ค.
๋ฐ๋ผ์, ํด๋น ํ๋กํ ์ฝ ๊ตฌํ์ ๋ฐ๋์ tableView(_:cellForRowAt:)
๋ฉ์๋๋ฅผ ๊ตฌํํ์ฌ์ผ ํ๋ค.
extension BeerListViewController: UITableViewDataSourcePrefetching {
func tableView(_ tableView: UITableView, prefetchRowsAt indexPaths: [IndexPath]) {
// ํ์ฌํ์ด์ง๊ฐ 2์ด์์ผ๋๋ถํฐ
guard currentPage != 1 else { return }
// prefetch๋ฅผ ์คํ
indexPaths.forEach {
if ($0.row + 1)/25 + 1 == currentPage {
self.fetchBeer(of: currentPage)
}
}
}
}
์๋ฅผ๋ค์ด first, second, third
๋ฌธ์์ด์ #first #second #third
๋ก ๋ณํ.
let tags = taglineString?.components(separatedBy: ". ")
let hashtags = tags?.map { "#" + $0.replacingOccurrences(of: " ", with: "")
.replacingOccurrences(of: ".", with: "")
.replacingOccurrences(of: ",", with: " #")
}
return hashtags?.joined(separator: " ") ?? ""
#imageLiteral(resource:)
์ฝ๋๋ฅผ ์
๋ ฅํ๋ฉด ์๋์ ๊ฐ์ด ์ด๋ฏธ์ง๋ฅผ ์ ํํ ์ ์๋ ํ์
์ด ๋ํ๋๋ค.