Tôi bắt đầu sử dụng CoreData trong ứng dụng của mình sau bài học Stanford CS193P về việc sử dụng lớp UIManagedDocument mới của iOS 5. Cách tiếp cận chính nó là khá đơn giản nhưng tôi không thể hiểu làm thế nào để đối phó với các sửa đổi mô hình tôi tiếp tục làm. Đây là cách tôi nhanh chóng đối tượng UIManagedDocument của tôi (bên trong appdelegate, để mỗi lớp khác có thể sử dụng nó):Sự cố di chuyển với UIManagedDocument
if (!self.database) {
NSURL *url=[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
url = [url URLByAppendingPathComponent:@"AppName"];
UIManagedDocument *doc = [[UIManagedDocument alloc] initWithFileURL:url];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
doc.persistentStoreOptions = options;
self.database=doc;
[doc release];
}
Vấn đề tôi có là mỗi khi tôi thay đổi ngay cả một chút .xcdatamodel của tôi, tôi không thể nhận được tất cả nội dung được lưu trữ trước đó trong tài liệu cũng như để tạo bất kỳ cá thể mới nào. Thực tế là việc này tạo ra ngoại lệ sau:
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'This NSPersistentStoreCoordinator has no persistent stores. It cannot perform a save operation.'
Tôi nghĩ rằng thuộc tính "tùy chọn" của tài liệu được quản lý sẽ giải quyết được vấn đề, nhưng dường như điều này là chưa đủ. Bất cứ ai cũng có thể giúp đỡ? Không thể 'tìm các câu hỏi khác thực sự phù hợp với nhu cầu chính xác của tôi.
Tôi cũng theo dõi Stanford CS193P và tôi cũng gặp lỗi tương tự. – coolcool1994