2011-07-13 17 views
8

Tôi có một mối quan hệ một-nhiều và tôi chỉ cố gắng để có được một vài điều thẳng. Khi tôi thiết lập mối quan hệ từ A < - >> B mọi thứ đều tuyệt vời và hoạt động theo cách tôi thích. Nhưng khi tôi muốn thay đổi mối quan hệ, xóa tất cả mọi thứ ra và thêm một vài B khác nhau (hơn tôi đã làm trước đây), tôi sẽ xóa mối quan hệ bằng cách sử dụng nullify hoặc cascade nếu tôi muốn nó được loại bỏ trên cả hai đầu?Tôi có nên sử dụng Cascade hoặc vô hiệu hóa trong Core Data cho một mối quan hệ?

Cũng có thể bất kỳ ai cho tôi ví dụ nhanh về cách tôi có thể thực hiện việc này không?

Tôi đã suy nghĩ cái gì đó như [b setValue:nil forKey:myRelationship]

Đó có phải là bất cứ nơi nào gần? Hay tôi cần cái gì khác?

Cảm ơn.

Trả lời

16

Các loại mối quan hệ này áp dụng khi xóa chính đối tượng được quản lý, chứ không xóa các mối quan hệ. Vì vậy, nếu bạn có đối tượng 'a' được liên kết với 'b', 'c' và 'd', thì khi bạn xóa 'a':

  • nếu mối quan hệ là 'thác', 'b', 'c', và 'd' tất cả sẽ bị xóa cũng như
  • nếu nó 'vô hiệu hóa', thì mối quan hệ trở lại 'a' sẽ bị xóa trên các đối tượng này.

Trong mọi trường hợp, bạn có thể sử dụng [b setValue: nil cho Key: myRelationship] để xóa mối quan hệ trên cả hai mặt.

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