Xcode 내에서 파일을 삭제하려고하면 위와 같이 두개의 선택지가 표시된다.
난 항상 흰색으로 하이라이팅 된 게 권장하는 거겠지 하고 Remove Reference를 선택하곤했는데 찝찝하니 확실히 알아보자.
저 Reference니 Trash니하는 버튼들을 알아보기 전에 먼저 이해해야할 부분이 바로 Copy items if needed
속성이다.
영어라고 거부감 느낄 필요 없다. 우리가 Xocde에 파일을 추가할때 항상 보던 익숙한 친구다.
우리가 Xcode 네비게이터 부분에 추가할 파일을 드래그 앤 드롭하면 나타나는 화면이다.
Copy items if needed 속성은 추가할 파일을 참조하여 사용할지 프로젝트 내부에 파일을 복사해서 사용할지 결정하는 속성이다.
Xcode에 파일을 추가할 때 Copy items if needed 속성을 체크할 경우 프로젝트 내부에 추가할 파일이 복사되고 그 파일을 사용한다. 해당 속성을 체크하지 않을 경우 추가할 파일을 복사하지 않고 그 원래 위치의 파일을 참조하여 사용한다.
그래서 Copy items if needed 속성을 체크하지 않을 경우 원본의 레퍼런스를 참조하기 때문에, 원본 파일이 삭제되었을 때 더 이상 해당 파일을 사용할 수 없다.
따라서 파일을 추가할 때에 Copy items if needed 속성을 체크하는 것이 더 안전하다고 볼 수 있다.
이제 "그" 버튼에 대해 알아보자. 파일을 추가할 때 Copy items if needed 속성을 체크하지 않았을 경우 원본의 레퍼런스만 참조하고있는 상황이기 때문에 Remove Reference를 선택해도 무방하다.
하지만 Copy items if needed 속성을 체크했을 경우 프로젝트 내에 복사된 파일이 존재하기 때문에 Remove Reference로 지웠다고 해도 복사된 파일이 그대로 남아있다.
이때는 그냥 Finder에서 참조만 지워져 Xcode에서 보이지 않는 파일을 찾아 지워주기만 하면 된다.
Move to Trash는 참조부터 물리적인 파일까지 모두 삭제한다.
Copy items if needed 속성을 체크했을 경우 복사된 파일과 참조가 지워지며, Copy items if needed 속성을 체크하지 않았을 경우 복사된 파일 없이 원본의 레퍼런스만 참조하기 때문에 참조가 지워진다.
원본 레퍼런스에 대한 참조만 지우고 싶다면 Remove Reference, 참조와 복사된 파일도 함께 지우고 싶다면 Remove Reference를 선택하자.
마지막 결론에 오타 있는거 같네요! 둘다 "Remove Reference"네요 ㅎㅎ