cơ bản bố trí ứng dụng bằng cách sử dụng mẫu điều khiển chuyển hướng với ngày lõi:Core Data lấy yêu cầu không thành công với: 'NSInternalInconsistencyException', lý do: 'tuyên bố vẫn đang hoạt động'
đại biểu: persistenceCoordinator, managedObjectModel, managedObjectContext
- RootView: managedObjectContext (từ đại biểu), addManagedObjectContext (sử dụng mẫu từ các mẫu), fetchResultsController
- Thêm/sửa chế độ xem (phân cấp để thêm đối tượng A & B của nó)
Tôi có hai đối tượng, A & B có chung một 1-to-1 mối quan hệ/mối quan hệ nghịch đảo
Sử dụng mô hình từ các mẫu ứng dụng:
- Tạo một addManagedObjectContext
- Chèn một thực thể A
- Bật/Thêm A vie w (đã thông qua nó thực thể chèn)
EXCEPTION BƯỚC 1:
Nếu tôi chỉ đơn giản là điền vào một thuộc tính và lưu tất cả mọi thứ hoạt động tốt.
- Các đối tượng được đưa vào cơ sở dữ liệu (xác minh với sqlite3 trên dòng lệnh)
- Các cập nhật fetchResultsController xem danh sách
- tôi có thể đóng và mở ứng dụng (full đóng/mở không chỉ chuyển đổi ứng dụng) và chế độ xem danh sách sẽ tìm nạp lại chính xác
Nếu sau đó tôi chỉnh sửa A, tôi có thể chọn Thêm B và chế độ xem B bổ sung được bật (Và đã thông qua một thực thể)
- Điền vào chi tiết B và lưu
- B được đưa vào A managedObjectContext, mối quan hệ được thiết lập, và bối cảnh được lưu
- Quan điểm bật tắt và tất cả dường như cũng
- các đối tượng đều trong cơ sở dữ liệu với mối quan hệ đúng
- tôi có thể tải lại các bản ghi và xem mối quan hệ, thực hiện chỉnh sửa, vv
- NGOẠI TRỪ: Nếu tôi đóng/mở lại ứng dụng, để kích hoạt tìm nạp, thì lỗi được đề cập trong tiêu đề sẽ xuất hiện .
EXCEPTION BƯỚC 2:
Nếu tôi điền vào một thuộc tính VÀ B thuộc tính trong đầu "add"
- Saving B gây nên một đầy đủ tiết kiệm của bối cảnh A (như trên)
- Lưu khoản tiết kiệm qua ủy quyền mối quan hệ được thiết lập bởi mẫu (và hợp nhất kết quả vào managedObjectContext chính v.v.)
- Các đối tượng được đưa vào cơ sở dữ liệu đúng
- Tuy nhiên fetchResultsController KHÔNG cập nhật để hiển thị các kỷ lục mới
- EXCEPTION: Nếu tôi đóng/mở lại ứng dụng, để kích hoạt một lấy, thì lỗi được đề cập trong tiêu đề sẽ xuất hiện .
Tôi đã thử lưu A đầu tiên, thêm ngữ cảnh riêng biệt cho B v.v .. v.v. Tôi nhầm lẫn khi nói ít nhất. Mọi sự trợ giúp sẽ rất được trân trọng.
Chúc mừng, Ryan
Có ngữ cảnh thêm giữ tất cả thay đổi trong ngữ cảnh chính cho đến khi bạn hợp nhất chúng. Nó hoàn toàn hợp lý. Sự cố là vấn đề về luồng với một trong các đối tượng được quản lý của tôi. Một sai lầm ngớ ngẩn không liên quan đến bối cảnh hoặc luồng ứng dụng. Cảm ơn mọi người. Tôi đánh giá cao những suy nghĩ. –
Xin lỗi, theo tên phương thức, tôi nghĩ rằng bạn đã "thêm ngữ cảnh khác" và không có "ngữ cảnh để thêm đối tượng". Vì lợi ích của độc giả trong tương lai, bạn có thể muốn chỉnh sửa câu hỏi của mình để phản ánh điều đó. – TechZen
Có nhiều hơn một bối cảnh chỉ để ném các đối tượng đi là một ** cạnh ** trường hợp tốt nhất. Nó không phải là "hoàn toàn hợp lý" nhưng một ví dụ xấu không may tồn tại trong một trong các dự án nguồn mẫu của Apple. 'NSUndoManager' là những gì nên được sử dụng cho các tình huống vứt bỏ. –