Cách xóa Phiên bản mô hình dữ liệu cũ / không sử dụng trong Xcode


163

Làm cách nào để xóa Mô hình Dữ liệu cũ trong Xcode? Tùy chọn bị vô hiệu hóa trên menu. (Các mô hình tôi muốn xóa chưa được phát hành ra công chúng - chúng là các mô hình phát triển tạm thời.)


Bạn có nghĩa là lựa chọn "Xóa" trong menu "Chỉnh sửa" bị tắt (trong khi tệp Mô hình Dữ liệu cũ của bạn được chọn trong Trình kiểm tra tệp)? Hay bạn có ý gì khác hoàn toàn?
Michael Dautermann

Có, lựa chọn xóa trong menu Chỉnh sửa, và trong menu nhấp chuột phải (và bất kỳ menu nào tôi có thể tìm thấy) đều bị tắt. Tôi biết một số người sẽ sử dụng xcode trước để xóa các phiên bản cũ / chưa sử dụng, nhưng tôi chưa cài đặt.
SAHM

Michael, bạn có thể làm điều này trong xCode 4 không?
SAHM

có ... Tôi chưa bao giờ thấy tùy chọn menu "xóa" bị vô hiệu hóa cho bất kỳ dự án XCode 4 nào của tôi.
Michael Dautermann

Đặc biệt cho xcdatamodel? Những người khác đã có cùng một vấn đề với việc xóa xcdatamodels XCode 4 .. Tôi chỉ không thấy một giải pháp được đăng.
SAH

Câu trả lời:


374

Đó là một hack, nhưng điều này làm việc cho tôi:

  1. Đặt phiên bản hiện tại của mô hình trong Xcode thành phiên bản bạn muốn giữ
  2. Xóa .xcdatamodeld khỏi dự án của bạn (Nhấp chuột phải -> Xóa -> Chỉ xóa tham chiếu )
  3. Hiển thị nội dung của gói .xcdatamodeld trong Trình tìm kiếm (Nhấp chuột phải -> Hiển thị Nội dung Gói)
  4. Xóa (các) tệp .xcdatamodel mà bạn không muốn nữa
  5. Thêm lại tệp .xcdatamodeld vào dự án của bạn

Điều này giúp loại bỏ sự cần thiết phải sửa đổi thủ công bất kỳ tệp siêu dữ liệu dự án nào.


2
Tôi đã thử kỹ thuật này và thấy rằng do cách đặt tên các phiên bản mô hình của tôi, phiên bản mô hình được sắp xếp lại không đúng và phiên bản mặc định sai được chọn khi tôi thêm lại tệp xcdatamodel vào dự án. Điều này có thể là do tôi có tới 38 phiên bản mô hình và tôi đã không thay đổi tên phiên bản mặc định, vì vậy các phiên bản được đặt tên là "MY_APP 37.xcdatamodel". Tôi muốn xóa 38. Khi nhập, nó được kéo theo thứ tự từ vựng, nghĩa là "MY_APP 10.xcdatamodel" là lần đầu tiên và được chọn làm mặc định. Không lý tưởng trong trường hợp của tôi.
Mike

1
Mike - vấn đề tương tự đối với tôi, mặc dù tôi đã có thể sắp xếp lại trong dự án.pbxproj trong một trình soạn thảo văn bản mà không có bất kỳ bộ phim truyền hình lớn nào. Vẫn không lý tưởng.
Ian Kershaw

1
Điều này không hoạt động với Xcode 5.1.1. Trước đây, với nhiều thay đổi mô hình nhỏ và số phiên bản mô hình tăng dần, tự động di chuyển nhẹ hoạt động chính xác. Tuy nhiên, sau khi cố gắng loại bỏ tất cả các mô hình "chỉ phát triển" bên ngoài bằng cách sử dụng phương pháp này, tôi gặp lỗi: "Lỗi: Không thể tìm thấy hoặc tự động suy ra mô hình ánh xạ để di chuyển".
Dalmazio

1
trong 6.4 không có tùy chọn để loại bỏ các tài liệu tham khảo. Nó vừa bị xóa. Phần còn lại của các bước dường như hoạt động
noobsmcgoobs

1
Điều này dường như hoạt động trong Xcode 10.2.1. Di chuyển của tôi là một số thay đổi tên thuộc tính vì vậy không có gì lớn.
Gavin

35

Tôi vừa tìm thấy sự cần thiết phải làm điều này. Tôi đã tạo ra một phiên bản mô hình mới và sau đó nhận ra rằng tôi không cần nó sau tất cả. Tôi đã rất ngạc nhiên khi thấy không có cách nào để xóa nó (mà tôi có thể tìm thấy) từ Xcode. Tuy nhiên, để loại bỏ nó, tôi đã làm như sau:

Đầu tiên tôi chắc chắn rằng đó không phải là phiên bản mô hình hiện tại của tôi. Sau đó, tôi đã đi đến Finder và tìm thấy tệp * .xcdatamodeld của mình. Nhấp chuột phải và Hiển thị nội dung gói trên đó. Trong đó bạn sẽ tìm thấy tập tin mô hình thực tế và có thể xóa nó.

Điều này vẫn không xóa nó khỏi Xcode và nó sẽ hiển thị màu đỏ trong Tệp và Nhóm. Để ngăn điều này xảy ra, hãy quay lại Finder và Hiển thị Nội dung Gói trên tệp * .xcodeproj chính của bạn (bạn có thể muốn đảm bảo rằng bạn đã sao lưu tệp này trước). Trong đó mở ra và chỉnh sửa project.pbxproj tìm một tên phiên bản mô hình của bạn, trong trường hợp của tôi là "khoảng 8". Đối với tôi nó xuất hiện trên hai dòng riêng biệt. Tôi đã xóa những dòng này và bây giờ nó đã bị xóa hoàn toàn khỏi Xcode.


1
@Daniel_Wood, yeah, tôi cũng đã tìm ra cách làm thủ công, nhưng coi chừng. Nó có thể gây ra một số vấn đề xuống dòng ... Tôi đã phải làm lại điều này nhiều lần, đôi khi nó cũng chuyển đổi phiên bản hoạt động và không hoạt động xung quanh, sau đó khi bạn đặt lại phiên bản chính xác, nó không chuyển nó sang đầu danh sách (đôi khi) gây ra nhiều vấn đề hơn! Cảm ơn rất nhiều cho đầu vào mặc dù. Điều này có vẻ kỳ quái là họ sẽ loại bỏ khả năng này - chúng ta không bao giờ nên đi vào tệp .xcodeproj!
SAH

2

Điều này làm việc với tôi trong XCode 10.3 mà không xảy ra sự cố đặt hàng khi xóa toàn bộ mô hình và thêm lại mô hình:

  1. Chọn bất kỳ phiên bản mô hình nào khác với phiên bản bạn muốn xóa.
  2. Từ XCode, nhấp chuột phải vào tệp .xcdatamodeld và chọn 'Hiển thị trong Finder'.
  3. Đóng XCode.
  4. Trong công cụ tìm, nhấp chuột phải vào cùng một tệp và chọn 'Hiển thị nội dung gói'.
  5. Viết tên của mô hình bạn muốn xóa, sau đó từ Finder, xóa nó.
  6. Vẫn trong Finder, điều hướng đến tệp dự án (.xcodeproj).
  7. Nhấp chuột phải và mở bằng Atom hoặc bất kỳ trình chỉnh sửa nào khác.
  8. Từ khung 'Project' mở tệp project.pbxproj.
  9. Xóa tất cả các dòng chứa tên mô hình bạn đã xóa (Ví dụ: "ABC 17.xcdatamodel"). Bạn sẽ tìm thấy hai dòng tương tự như sau:

    9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * / = {isa = PBXFileReference; lastKnownFileType = Wrapper.xcdatamodel; đường dẫn = " ABC 17.xcdatamodel "; nguồnTree = ""; };

    9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * /,

    Lưu ý nếu bạn tìm thấy một dòng thứ ba, nó sẽ giống như:

    currentVersion = 9D88880323C545B800A789B9 / * ABC 17.xcdatamodel * /;

    Điều đó có nghĩa là nó là mô hình hiện đang được lựa chọn. Không bao giờ xóa dòng này. Chỉ cần thay đổi văn bản sang phiên bản mô hình khác.

  10. Mở lại XCode.


-4

Câu trả lời của tôi hoàn toàn không phải là vấn đề cụ thể nhưng nó rất nhanh và hiệu quả. Đối với những người sử dụng git. Bạn chỉ có thể loại bỏ những thay đổi không có căn cứ.

git stash save --keep-index

Sau đó, bạn có thể thả stash đó bằng một git stash droplệnh nếu bạn muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.