var cityNames = [String]() // 저장하기 위한 배열
func getAllCityNames() {
do {
var arr = try context.fetch(CityName.fetchRequest())
// context는 Core Data의 작업 컨텍스트로, 데이터를 조회하고 수정하거나 추가하는 등의 작업을 수행하는데 사용
// CityName은 Core Data 모델에 정의된 엔터티(데이터 유형)
// fetchRequest()는 CityName 엔터티에 대한 검색(fetch) 요청을 나타내는 메서드
arr.forEach { i in
cityNames.append(i.cityName ?? "")
}
// arr에서 하나씩 꺼내서 cityNames 배열에 추가한다.
}
catch {
}
}
func createCityName(cityName: String) {
let newCityName = CityName(context: context)
// CityName(context: context) : Core Data에서 CityName 엔터티의 새로운 인스턴스를 생성하는 코드.
// context는 Core Data 작업 컨텍스트를 나타내며, 이 컨텍스트를 사용하여 데이터 작업을 수행.
// 이 생성자를 호출하면 새로운 CityName 엔터티 인스턴스가 생성되며, 이 인스턴스는 아직 데이터베이스에 저장되지 않은 상태
newCityName.cityName = cityName
// 이전에 생성한 CityName 인스턴스의 cityName 속성에 값을 설정.
// cityName은 새로 추가할 도시 이름을 나타내는 속성이며, 데이터베이스에 저장될 값
do {
try context.save()
cityNames.append(cityName)
// 배열에 새로운 cityName 추가
DispatchQueue.main.async {
self.collectionView.reloadData()
}
}
catch {
}
}