Tôi gần như đã hoàn thành bản phát hành 1.1 ứng dụng iOS đầu tiên của mình, trong đó tôi đã thực hiện hai thay đổi nhỏ cho mô hình dữ liệu cốt lõi của mình. Cụ thể hơn, tôi đã thêm hai thuộc tính vào một trong các bảng của tôi. Đây là ứng dụng dữ liệu cốt lõi đầu tiên của tôi và do đó cập nhật dữ liệu cốt lõi đầu tiên của tôi thành ứng dụng trực tiếp và tôi hơi lo lắng về mã vận chuyển có thể không hoạt động đối với người dùng hiện tại của tôi. Vì đó là một bản cập nhật nhỏ, tôi đoán rằng phương pháp di trú của Táo sẽ làm, nhưng tôi không muốn đoán.Cập nhật ứng dụng iOS với mô hình dữ liệu lõi đã cập nhật
Mã liên quan như sau:
NSError *error = nil;
__persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], NSMigratePersistentStoresAutomaticallyOption,
[NSNumber numberWithBool:YES], NSInferMappingModelAutomaticallyOption, nil];
if (![__persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:options error:&error])
{
//NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
Trong 1.1 Tôi đã thêm NSDictionary *options
.
Trong điều khiển xem, tôi chắc chắn rằng các hàng cần không phải là con số không như thế này:
if (currentPage.inputType == @"drawing") {
[pageView changeToDrawing];
} else if (currentPage.inputType == @"text") {
[pageView changeToText];
} else {
currentPage.inputType = @"text";
[pageView changeToDrawing];
}
Về cơ bản, là những thay đổi này đủ hay tôi phải làm cái gì khác?
Cảm ơn câu trả lời của bạn, tôi có một câu hỏi liên quan. Tôi đã thêm các thuộc tính trước khi tạo phiên bản mô hình mới, tôi có nên xóa các thuộc tính mới khỏi phiên bản 1.0 của mình và chỉ có chúng trong phiên bản mô hình dữ liệu 2.0 của tôi hay không? Cảm ơn! – Anders
Tuyệt đối bạn nên xóa chúng khỏi 1.0 và thêm vào phiên bản tiếp theo. Gần đây tôi đã từng thực hiện điều này một chút. 1.0 nên được * chính xác * giống như những gì hiện đang được triển khai hoặc nếu không bạn sẽ nhận được một ngoại lệ. Điều này bao gồm cả thuộc tính cũng như các mối quan hệ. – Jeremy
Ah, cảm ơn. Có nó để làm việc. Đã làm như bạn đề nghị. :) – Anders