2012-08-27 19 views
7

Khi thiết kế các mô hình dữ liệu cốt lõi trong XCode, bạn có thể tự động tạo ra các định nghĩa NSManagedObject lớp con (.m và các file .h) bởiCách tốt hơn để tạo lại định nghĩa lớp sau khi sửa đổi mô hình dữ liệu lõi?

  1. Chọn Entities
  2. Chọn "Create NSManagedObject lớp con" từ EDITOR menu

Sau đó, bạn có thể thêm nhiều mã trong các lớp này, nếu bạn phải sửa đổi thiết lập mô hình dữ liệu rất nhiều vì lý do nào đó sau đó? Để phản ánh những thay đổi này trên mô hình dữ liệu, có cách tự động nào để thực hiện điều đó không? hoặc bạn phải làm mọi thứ theo cách thủ công.

Hiện tại nếu tôi cố gắng tạo lại định nghĩa lớp này từ menu EDIT một lần nữa (tự động), nó sẽ thay thế tất cả các tệp hiện tại. Tất cả mã được thêm sẽ biến mất.

Tôi thực sự hy vọng phiên bản tương lai của Xcode có thể thêm tính năng thông minh: tự động cập nhật định nghĩa lớp mặc định mà không làm mất công việc đã thêm. Có lẽ tôi quá lười biếng. :)

Trả lời

6

Bạn đang gặp sự cố thường gặp. Bạn đang khá mắc kẹt với cách tạo các lớp con đối tượng được quản lý bằng Xcode trong thời gian này. Biết rằng, bạn có thể:

  • thiết kế xung quanh nó

    Đối với trường hợp đơn giản, bạn có thể sử dụng các nhóm để thêm chức năng (mặc dù không phải nhà nước) để NSManagedObject lớp con của bạn. Mã trong tệp của danh mục rõ ràng là an toàn khi bị ghi đè mỗi khi mô hình dữ liệu của bạn thay đổi.

  • Không sử dụng Xcode

    Mogenerator là một công cụ tiện lợi được thiết kế để giải quyết chính xác vấn đề đó. Nó tạo ra hai lớp cho mỗi thực thể thay vì một, cho phép Xcode quản lý một trong khi bạn quản lý một tổ chức khác.

0

Bạn có thể tạo một lớp học với tên khác và dán các lĩnh vực được tạo ra vào lớp cũ

1

Có vẻ như Apple đã giải quyết vấn đề với XCode 7: bây giờ nó tự động tạo ra các thực thể và một loại của thực thể với các thuộc tính dữ liệu cốt lõi của nó. Khi bạn tạo lại, nó chỉ cập nhật danh mục, để lại mã tùy chỉnh của bạn trong lớp thực thể không bị tổn hại. Xem này link

Các vấn đề liên quan