Task 7) CoreData 설정 이슈

soy·2024년 12월 11일

iOS-Task

목록 보기
9/12

프로젝트 중간에 CoreData 추가

프로젝트 초반에 CoreData를 포함하지 않아, 중간에 포함 시켜야했다.
따라서 아래의 글을 참고하여 진행했다!

추가 방법은 아래 링크에 잘 나와있으니, 생략하겠다!

참고 글1
참고 글2


Error 발생

위의 글과 똑같이 따라했는데,
아래와 같은 에러가 계속 발생했다.

1. Multiple commands produce Error

Multiple commands produce '/Users/[사용자명]/Library/Developer/Xcode/DerivedData/(생략)/Debug-iphonesimulator/Sparta7_PhoneBook.build/Objects-normal/arm64/PhoneBookData+CoreDataClass.swiftconstvalues'

2. Ambiguous Type Error

'PhoneBook' is ambiguous for type lookup in this context


시도 방법

1. Clean Build Folder


오류가 나면 제일 먼저 시도해보는 방법이다.
Xcode 상단의 Product -> Clean Build Folder 를 진행해준다.


결과는 여전했다..

2. CoreData 삭제 후 재생성

CoreData 삭제 후, 다시 파일을 생성했다.

이 또한 결과는 여전했다..

3. DerivedData 폴더 삭제

DerivedData는 아래와 같은 경로를 가지고 있다!
/Users/[사용자 이름]/Library/Developer/Xcode/DerivedData
*사용자 이름을 본인의 환경에 맞게 바꿔주어야 함!

Finder에서 Command + Shift + G 통해 위의 경로로 이동한다.

이동하면 아래와 같은 폴더들이 쫙- 있을텐데!
현재 문제가 생긴 프로젝트의 DerivedData 폴더만 삭제해주면 된다!
그렇지만 이렇게하면 SPM으로 깔아둔 Package들도 재설치를 해야한다.
(SnapKit, Alamofire 등등)
재설치 안하고 진행하는 방법은 모르겠다...

4. CoreData Entity의 Codegen 변경 (성공!)

CoreData의 Codegen 부분은 아래와 같다.

위에 내가 첨부해둔 글에서는 이를 Class Definition 으로 설정하고 있는데,

나는 Manual/None 으로 변경해서 다시 Editor -> Create NSManagedObject Subclass 를 해줬다!

찾아보니,,,
Class Definition로 설정하면 .CoreDataProperties , .CoreDataClass가 목록에 보이지 않게 생성되어 Create NSManagedObject Subclass 를 할 경우 중복 생성이 되는 것이었다.....

따라서 직접 생성할거라면 Manual/None을 선택해주어야 했던 것!

혹시 또 문제가 생길까 염려돼서 기존에 있던 CoreData를 다 삭제하고,
Github으로부터 Pull 받아서 CoreData가 존재하기 전 시절부터.. 다시다시다시 시작했다.

결과는 빌드 성공!

profile
soysoisoyysauce~

0개의 댓글