2012-12-01 34 views
7

Khi lưu bối cảnh đối tượng được quản lý Dữ liệu cốt lõi trên iOS 6.0.1 vào một cửa hàng SQLite, tôi chạy vào một sự lạ "CoreData không hỗ trợ chéo liên tục -quan hệ các mối quan hệ "ngoại lệ. Nó liên quan đến mối quan hệ một-một giữa Quotes và AbstractSources trong mô hình. Khi chạy nó liên quan báo giá và Sách"CoreData không hỗ trợ các mối quan hệ lưu trữ liên tục" mặc dù khớp với các id x-coredata

Tôi đã nghiên cứu báo cáo tương tự và bao phủ những nguyên nhân báo cáo (trong đó sách được thừa hưởng từ AbstractSource Tất cả hoạt động tốt trong trình soạn thảo mô hình..):

  1. Tôi gán cả Trích dẫn và Sách cho cùng một lưu trữ liên tục bằng cách sử dụng assignObject: toPersistentStore :, do đó, không còn chưa được gán.
  2. Mô tả lỗi cho thấy id bài "tuyệt đối" x-CoreData bắt đầu với cùng tiền tố (ví dụ "x-CoreData: // 82B3BEB3-60F2-4912-AC80-11AAD29CFF99 /", do đó thực sự dường như là một cửa hàng chỉ được sử dụng

câu hỏi của tôi là thế này:..

  1. có điều gì khác tôi phải kiểm tra (có lẽ sg liên quan đến AbstractSource, mà tôi không chạm/kiểm soát trong nguồn của tôi? Tôi đang tạo cả Trích dẫn và Sách wit h gọi tới initWithEntity: insertIntoManagedObjectContext từng.)
  2. Tôi nhận thấy rằng mô tả lỗi cũng bao gồm một số các id "x-coredata" tương đối (dạng "x-coredata: /// ..."). Có thể đó là hình thức tuyệt đối luôn được coi là "cơ sở dữ liệu chéo", ngay cả khi tiền tố "tuyệt đối" (xem ví dụ ở trên) là giống nhau không? Và nếu có, làm cách nào tôi có thể ảnh hưởng đến bất kỳ lựa chọn nào giữa id "tuyệt đối" và "tương đối" x-coredata?

Thx (nhiều) cho sự chú ý của bạn!

+0

+1 cho một câu hỏi được viết tốt. –

+0

x-coredata: // 82B3BEB3-60F2-4912-AC80-11AAD29CFF99/= id tạm thời của đối tượng chưa được lưu –

+0

@ Daij-Djan thx (Danke) để làm rõ. Tôi vẫn giả định rằng id (82B3BEB3-60F2-4912-AC80-11AAD29CFF99) cho biết lưu trữ liên tục sẽ được sử dụng khi nói đến tiết kiệm, và các id cho Trích dẫn và Bock đều giống nhau. – Drux

Trả lời

0

Vì vậy, đây là những gì đã có (có lẽ) gây ra những rắc rối: điều phối viên

  1. My quản lý đối tượng bối cảnh của có để quản lý hai dai dẳng cửa hàng. Bây giờ một trong những mà tôi đã giao Trích dẫn và Sách và tôi muốn họ lưu được thiết lập lại lúc khởi động. Đã xảy ra lỗi trong mã này, khiến cửa hàng này không sử dụng được. Vì một giây thứ hai, đã có sẵn âm thầm, trong trường hợp này dẫn đến kết quả không mong muốn. Bài học: Tôi bây giờ khẳng định rằng có/vẫn thực sự là hai cửa hàng sau khi thiết lập ngăn xếp dữ liệu cốt lõi.
  2. Trong quá trình phát triển trước đó của mô hình Dữ liệu cốt lõi của tôi, tôi đã đổi tên một số đối tượng của mình trong trình chỉnh sửa mô hình một số . Do nhầm lẫn, tôi chỉ thay đổi tên chứ không phải các thuộc tính lớp thực thể. Vì vậy, có hiệu lực trong khi mọi thứ hoạt động tốt trong trình chỉnh sửa mô hình, các lớp bất ngờ được sử dụng trong thời gian chạy và do đó các lớp không mong muốn trong đó cũng được gán cho các cửa hàng không mong muốn/sai. Bài học: Bây giờ tôi đảm bảo rằng rằng các tên thực thể và thuộc tính lớp học của chúng vẫn được đồng bộ hóa hoàn hảo (các trường hợp khác là cho phép).

Vấn đề bây giờ được giải quyết, và tôi cũng đã refactored mã của tôi/mô hình để sử dụng (không chồng chéo) configurations thay vì nhiệm vụ rõ ràng, mà cũng nên giúp đỡ trong tương lai.

Một lần nữa, thx cho sự chú ý của bạn

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