Tôi nhận được lỗi 'Cannot create an NSPersistentStoreCoordinator with a nil model'
sau khi xóa ứng dụng của mình khỏi thiết bị. Tôi đang thử nghiệm một ứng dụng iPhone trên thiết bị iPad. Tôi đã đặt mã này để kiểm tra xem tôi có tập tin trong AppDelegate.m
:Không thể tạo NSPersistentStoreCoordinator với mô hình nil sau khi xóa ứng dụng khỏi thiết bị
- (NSManagedObjectModel *)managedObjectModel {
if (__managedObjectModel != nil) {
return __managedObjectModel;
}
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"Name" withExtension:@"momd"];
if ([[NSFileManager defaultManager] fileExistsAtPath:[modelURL path]]) {
NSLog(@"%@", [modelURL path]); //This is printed because file exists
}
__managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
return __managedObjectModel;
}
Vấn đề là [NSManagedObjectModel initWithContentsOfURL]
đang trở lại giá trị nil. tôi đã thực hiện những điều sau đây, không có thành công:
- Thay đổi managedObjectModel instantiation với
__managedObjectModel = [NSManagedObjectModel mergedModelFromBundles:nil];
- sạch thư mục xây dựng này và dự án làm sạch
- : Khởi động lại Xcode
- máy tính Khởi động lại
- Changed "momd "to" mom "
.xcdatamodeld
nằm trong Tài nguyên và các nguồn biên dịch sao chép- đổi tên
.xcdatamodeld
và làm sạch và đóng cửa dự án Xcode nhiều lần - tắt và trên thiết bị
- thư mục Deleted từ:
$ cd /Users/john/Library/Developer/Xcode/DerivedData
- Thay đổi tên SQLite để buộc hệ cơ sở dữ liệu
- xóa (một lần nữa) ứng dụng từ devine
Tôi đã tìm kiếm giải pháp hàng giờ và tôi vẫn không thể tìm thấy nó.
Liệu nó có hoạt động trên trình giả lập không? Bạn có thể mở tệp '.xcdatamodeld' trong Xcode không? – FluffulousChimp
Alan, tôi có thể mở tệp '.xcdatamodeld' trong Xcode, nhưng ứng dụng không hoạt động trong trình mô phỏng. Nó khởi chạy, nhưng chỉ hiển thị một màn hình màu đen. – amb
Tôi nghĩ rằng tôi đã tìm thấy một cái gì đó ... Tôi vừa mới nhận ra rằng tôi đã không xóa tất cả các tập tin đang sống trong '/ Users/john/Library/Developer/Xcode/DerivedData', vì vậy khi tôi thực hiện điều này , ngay cả managedObjectModel. Có cách nào để xóa các tệp này trong thiết bị không? – amb