Nếu bạn chỉ muốn tải các phiên bản của mô hình đó là tương thích với một cửa hàng đặc biệt thử hiện:
NSError *error = nil;
NSDictionary *storeMetadata = [NSPersistentStoreCoordinator metadataForPersistentStoreOfType:NSSQLiteStoreType
URL:storeURL
error:&error];
NSManagedObjectModel *oldManagedObjectModel = [NSManagedObjectModel mergedModelFromBundles:[NSArray arrayWithObject:[NSBundle mainBundle]]
forStoreMetadata:storeMetadata];
Lưu ý rằng nếu bạn sử dụng định danh phiên bản XCode cho các phiên bản mô hình dữ liệu của bạn, phiên bản hiện tại các cửa hàng liên tục của định danh có thể truy cập thông qua mục nhập NSStoreModelVersionIdentifiersKey trong từ điển siêu dữ liệu cửa hàng.
Khi tải một phiên bản tùy ý cụ thể, các tệp mẹ thường nằm trong thư mục mẹ trong gói ứng dụng của bạn, vì vậy bạn có thể liệt kê chúng bằng NSFileManager. Tôi tin rằng để tìm một với một định danh phiên bản cụ thể bạn sẽ phải sử dụng initWithContentsOfURL của NSManagedObjectModel: initializer và sau đó kiểm tra thuộc tính versionIdentifiers, hoặc sử dụng phương thức instance isConfiguration: compatibleWithStoreMetadata: để xác định khả năng tương thích.
Nguồn
2012-09-05 15:46:57
fyi trên phiên bản của tôi (7.1) phiên bản .mom (s) nằm trong một tệp có cùng tên với phiên bản (vì vậy @ "... /% @", phiên bản thay vì @ "/.../ AppModel% @", phiên bản) –