본문 바로가기

𝗔𝗦𝗦𝗜𝗚𝗡𝗠𝗘𝗡𝗧/[내배캠] 7주차 - 위시 리스트

[내일배움캠프] Swift 7주차 iOS 숙련 개인 과제 - 위시리스트(01)

 

 

위시리스트 만들기

 

 

 

 

이번 개인 과제에서는 JSON을 사용하여 CoreData에 데이터를 저장하는 것을 주제로 위시리스트를 구현하게 되었다. 제일 먼저 JSON을 살펴봤는데 익숙한 형식이라 그나마 다행이었다. 다만, CoreData는 처음이라 좀 막막했다.

 

 

아니나 다를까 문제가 발생했는데, 

 

넌 누구...? 냐...?

 

 

사건의 발단은 이러했다. 

 

{
  "id": 1,
  "title": "iPhone 9",
  "description": "An apple mobile which is nothing like apple",
  // 생략 
}

 

JSON에 있던 저 description을 CoreData의 속성값으로 그대로 집어넣은 결과 아래와 같은 문구가 나를 반겼고 

 

 

Property name clashes with a method implemented by NSManagedObject or NSObject

 

이 에러를 그대로 번역기에 돌려보니, 

 

속성 이름이 NSManagedObject 또는 NSObject에 의해 구현된 메서드와 충돌합니다.

 

어... 그래, 무슨 소리인가 싶었다. 그래서 다시 그대로 구글링을 시도했는데 아래와 같은 답변을 찾을 수 있었다. 

 

 

이미지 클릭 시 원문으로 이동합니다.

 

 

그러니까 요약하자면 description이라는 이름은 CoreData의 속성으로 지정할 수 없다는 소리였다.

그래도 이때까지는 괜찮았다. 늘 하던 대로, 늘 그렇듯이 나는 이게 Swift라는 걸 망각했다. 

 

 

WOOD: 그 이름 자체로 안 되면 이름을 바꿔서 넣으면 되잖아?

SWIFT: 응 아니야, 돌아가~ 

 

 

WOOD: 

출처: Pinterest

 

 

사실 이때 이런 생각을 해봤다. 

 

 

id, title과 같은 데이터의 고유한 값만 CoreData에 저장한 후 사용자가 저장된 데이터를 원할 때 고유한 값을 이용해 JSON에 다시 서버통신을 요청, 다시금 해당 데이터를 받아와 보여주면 어떨까?

 

 

 

과제의 목적과 다르다.

튜터님한테 빠꾸 당했다. 

 

 

 

그래서 나는 다시 구글링을 했다. 구그라... 나 좀 살려줘...

 

결론을 말하자면, '이름을 바꿔서 넣으면 되잖아'라는 생각이 맞았다. 방법이 틀렸을 뿐.

 

해결도 완료. 굉장히 뿌듯하다. Codable 공부와 적용하는 시간 다 합쳐 이틀 꼬박 걸렸다는 것만 빼면 말이다. 

 

 

 

 

 

 

 

 

Swift 기초 문법 - Codable: JSON을 위한 JSON에 대한 Encoding / Decoding

Codable: JSON을 위한 JSON에 대한 Encoding / Decoding 목차 접기 Codable: JSON을 위한 JSON에 대한 Encoding / Decoding JSON Codable Encoding Decoding CodingKey 💡 Codable: JSON을 위한 JSON에 대한 Encoding / Decoding Codable에 설명

wood-fxrest.tistory.com

 

Recent Posts
Visits
Today
Yesterday
Archives
Calendar
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31