2010-07-13 24 views
6

sau khi tôi chèn một ManagedObject vào một ngữ cảnh mà tôi muốn tìm nạp sau này, nhưng trước khi lưu ngữ cảnh (tôi sẽ lưu sau khi tất cả các đối tượng được chèn vào). Dường như truy vấn ngữ cảnh sau này với một tìm nạp liên quan đến các đối tượng đó sẽ không trả về gì nếu ngữ cảnh không được lưu trước đó. Có cách nào để tiết kiệm chỉ cuối cùng (tôi đoán tôi có thể lưu các đối tượng của tôi trong một mảng hoặc từ điển và truy vấn đó nhưng tôi nghĩ CoreData sẽ làm việc này cho tôi)CoreData: Lấy một đối tượng từ một bối cảnh chưa được lưu

+0

này cũng có thể thất bại nếu bạn đang sử dụng NSDictionaryResultType http://stackoverflow.com/questions/1632029/nsdictionaryresulttype-expression-not-taking-into-account-newly-inserted-objects –

Trả lời

16

Hãy thử điều này:

[myFetchRequest setIncludesPendingChanges:YES]; 

Từ documentation:

Sets nếu, khi lấy được thực thi, nó phù hợp với những thay đổi hiện nay chưa được lưu trong bối cảnh đối tượng quản lý.

+0

tôi thấy rằng trước đây nhưng có vẻ như không hoạt động, hàm fetch trả về mảng 0 phần tử nhưng ngữ cảnh hiển thị 20 đối tượng trong nó (tôi đăng nhập nó với [[moc insertedObjects] count]), trong khi nếu tôi lưu trước moc chỉ chứa 1 đối tượng được chèn (tôi chèn nó trước khi tìm nạp, nhưng nevermind) và mảng đối tượng đã tìm nạp có độ dài 1 (chính xác). Có lẽ vì bối cảnh của tôi bị ràng buộc vào một cửa hàng liên tục, tôi có liên kết nó với một cửa hàng trong bộ nhớ không? – rano

+0

Điều này sẽ hoạt động bất kể vị trí của cửa hàng. Nếu bạn có nhiều bối cảnh, hãy nhớ rằng bạn chỉ có thể tìm nạp các đối tượng chưa được lưu bên trong mỗi ngữ cảnh riêng lẻ cho đến khi mỗi ngữ cảnh đã lưu vào cửa hàng. – TechZen

+0

includePendingChanges mặc định thành YES theo tài liệu để điều này không thực sự hữu ích ... –

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