Vì vậy, vấn đề của tôi là tôi không biết mã điều phối cửa hàng liên tục này ở đâu. Nó chỉ ra nó được tự động tạo ra trong thực hiện AppDelegate
của bạn khi bạn kiểm tra "Sử dụng dữ liệu cốt lõi" khi tạo dự án.
Vì vậy, từ liên kết thứ hai here, tất cả các bạn cần làm cho một sự chuyển đổi trọng lượng nhẹ (thêm thuộc tính mới và chào hàng) như sau:
- Chọn .xcdatamodeld bạn
- Từ menu , chọn Trình biên tập -> Thêm Mô hình Phiên bản
- Đặt tên phiên bản mới bất cứ điều gì bạn muốn, chọn phiên bản trước trong "Dựa trên mô hình"
- Trong Trình kiểm tra tệp .xcdatamodeld, chọn Phiên bản mẫu -> Hiện tại -> kiểu mới của bạn phiên bản
- Chọn phiên bản mô hình mới của bạn bên trong .xcdatamodeld trong Project Navigator và thực hiện thay đổi đối với mô hình
- Nếu bạn thay đổi tên hoặc loại thuộc tính, tạo mô hình ánh xạ, tệp mới -> Dữ liệu cốt lõi -> Mô hình ánh xạ -> chọn nguồn và mô hình điểm đến phiên bản
- cập nhật các bản đồ trong mô hình lập bản đồ mới
Thay đổi mã điều phối appdelegate cửa hàng khăng khăng của bạn như sau.
lazy var persistentStoreCoordinator: NSPersistentStoreCoordinator? = {
var coordinator: NSPersistentStoreCoordinator? = NSPersistentStoreCoordinator(managedObjectModel: self.managedObjectModel)
let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("<data model name>.sqlite")
var error: NSError? = nil
var failureReason = "There was an error creating or loading the application's saved data."
let options = [
NSMigratePersistentStoresAutomaticallyOption: true,
NSInferMappingModelAutomaticallyOption: true]
if coordinator!.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: options, error: &error) == nil {
coordinator = nil
// Report any error we got.
var dict = [String: AnyObject]()
dict[NSLocalizedDescriptionKey] = "Failed to initialize the application's saved data"
dict[NSLocalizedFailureReasonErrorKey] = failureReason
dict[NSUnderlyingErrorKey] = error
error = NSError(domain: "YOUR_ERROR_DOMAIN", code: 9999, userInfo: dict)
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog("Unresolved error \(error), \(error!.userInfo)")
abort()
}
return coordinator
}()
Vì vậy, bạn chỉ thêm tùy chọn di chuyển vào cuộc gọi addPersistentStoreWithType
.
Nó đã giúp cảm ơn bạn! –
Vui lòng tránh trả lời bằng URL hoặc ít nhất dán các điểm nổi bật trả lời câu hỏi. Bạn không thể đảm bảo liên kết bên ngoài sẽ luôn ở đó ... – dooleyo
Và, trên thực tế, liên kết đầu tiên đã chết - Cổng xấu. – rattletrap99