Table of Contents
Dữ liệu lõi nằm trong khuôn khổ cơ bản của Apple để quản lý đồ thị vật thể bền bỉ trong ứng dụng iOS. Thay vì ép các nhà phát triển viết đường dẫn thô hoặc quản lý tập tin nối tiếp, Cơ sở dữ liệu cung cấp một giao diện đồ vật có độ cao mà xử lý các tính chất phức tạp của lưu trữ, thay đổi theo dõi, và mô hình dữ liệu. Mỗi iOS phát triển làm việc với dữ liệu địa phương nên hiểu khả năng của Core Data và các thực hiện tốt nhất để xây dựng các ứng dụng đáp ứng, mà không cần hy sinh hiệu suất.
Hiểu kiến trúc dữ liệu lõi
Dữ liệu lõi không chỉ là một cơ sở dữ liệu. Nó là một khung quản lý đồ thị có thể bền bỉ dữ liệu vào đĩa, mà còn quản lý trong các mối quan hệ đối tượng, không quản lý và xác nhận. Kiến trúc xoay quanh bốn thành phần chính hợp lại thành những gì thường được gọi là ngăn [FLT: 0] [FLT: 1].
Bộ dữ liệu lõi
Mỗi dữ liệu mã lõi thực hiện yêu cầu một tập cụ thể các đối tượng được liên kết theo thứ tự xác định.
- Quản lý đối tượng Context (SManageObccttext): ) Nơi các nhà phát triển làm việc với các đối tượng quản lý. Tất cả các thay đổi xảy ra bên trong một ngữ cảnh trước khi được lưu vào cửa hàng bền bỉ.
- Chương trình Lưu trữ Thư viện Mở rộng Mở rộng Mở rộng Cửa sổ Mở rộng Mở rộng Cửa sổ Cửa sổ Cửa sổ Cửa sổ Mở rộng: Công cụ như một cầu nối giữa văn cảnh và cửa hàng thực sự bền bỉ. Nó trung gian truy cập và bảo đảm sự toàn vẹn dữ liệu.
- Mô hình đối tượng đã điều khiển (SDEDObctModel): Mô tả các thực thể, thuộc tính và các mối quan hệ trong dữ liệu. Nó thường được xác định trong tập tin .xcdatamodeld.
- Lưu trữ lại: Cơ chế lưu trữ thật, có thể là QLite, nhị phân, hoặc trong mô phỏng. mặc định cho ứng dụng sản xuất.
Sự phát triển iOS hiện đại thường dùng lớp [FLT: 0], mà tự động tạo và cấu hình toàn bộ chồng. Nó loại bỏ bảng chọn lọc hơi nước và giảm khả năng cấu hình sai.
Thiết lập dữ liệu lõi trong dự án của bạn
Thêm Dữ liệu lõi vào một dự án iOS đòi hỏi một số bước cố ý, mỗi bước đó xây dựng nền tảng cho quản lý dữ liệu. Quá trình bắt đầu với việc tạo tập tin mô hình dữ liệu, sau đó xác định thực thực thể của bạn, và cuối cùng trộn chồng với xe đạp đời của ứng dụng.
Tạo ra mô hình dữ liệu
Bắt đầu bằng cách thêm tập tin mới vào dự án Xcdat. Trong dự án này, bạn định nghĩa các thực thể (bằng các bảng), thuộc tính của chúng [FLT: 1]. Bạn cũng có thể xác định kiểu dữ liệu, giá trị mặc định, quy tắc hợp lệ hoá, và chỉ mục để truy vấn hiệu suất tối ưu.
Định hướng các thực thể và mối quan hệ
Mỗi thực thể đại diện một loại đối tượng mà ứng dụng của bạn quản lý, như là người dùng, Tác vụ, hay sản phẩm. Tính chất xác định các tính chất của thực thể đó (tên, giá, ngày tháng, v. v.). Mối quan hệ giữa các đối tượng, cho phép Core Data để theo dõi đồ thị và tự động truyền bá các bản cập nhật hay cập nhật. Ví dụ, một thực thể "Person" có thể có một mối quan hệ với "PoneNber", mà Dữ liệu có thể lấy theo hướng.
Khi thiết kế các mối quan hệ, hãy chú ý đến quy tắc [FLT: 0] [FLT: 1]. Tùy chọn bao gồm Nullifify, Cascade và Denable. Chọn sai quy tắc có thể dẫn đến mất dữ liệu bất ngờ hoặc hồ sơ mồ côi. Xếp đặt thường thích hợp cho các mối quan hệ cha mẹ con, trong khi Nullify hoạt động tốt cho các mối liên kết tùy chọn.
Đang tạo ra các lớp con phụ NSManageObct
Một khi mô hình thực thể của bạn đã hoàn tất, X code có thể tự động tạo ra các lớp « Xoá bỏ » cho mỗi thực thể. Những hạng phụ này thừa kế từ [FLT: 1) và bao gồm các tính chất và mối quan hệ bạn định nghĩa. Bắt đầu với Xcode 8, phương pháp được khuyến khích là chọn « Người đàn ông » như [FLT: 0] khả năng định dạng [FLT: 1], mà giữ các tập tin tạo ra trong dữ liệu nhập. Hoặc, bạn có thể chọn « Người đàn ông/ None » và tạo hạng phụ, khi thêm tính năng hữu ích khi bạn thêm hay tính toán.
Thực hiện thao tác CRID
Với chồng đã đặt, bạn có thể chèn, lấy, cập nhật và xoá các đối tượng bằng ). Mọi thao tác phải được thực hiện trong ngữ cảnh, và thay đổi chỉ được duy trì sau khi gọi thành công .
Tạo ra và lưu các đối tượng
Để chèn một đối tượng mới, hãy dùng rồi đặt thuộc tính của nó. Sau khi thay đổi, hãy gọi . Luôn luôn gói các cuộc gọi trong khối [FLT: 6) để xử lý lỗi cách duyên dáng, đặc biệt trong hành động nhập vai người dùng.
Gửi dữ liệu với các lời tiên tri và loại người ghi chép
là cơ chế chính để truy vấn đối tượng. Bạn có thể ép buộc kết quả sử dụng (v. [FLT: 9). và kết quả có . Dữ liệu này cũng hỗ trợ các hợp chất, phụ đề, và thu thập các mối quan hệ. Đối với dữ liệu lớn, luôn luôn giới hạn cỡ và xem xét [FL:12] để giảm bộ nhớ.
Cập nhật và xóa bỏ
Cập nhật một đối tượng đơn giản như sửa đổi tính chất của nó trong ngữ cảnh; cơ sở dữ liệu lõi theo dõi các thay đổi tự động. Để xoá bỏ, hãy gọi . Hãy nhớ lưu sau ngữ cảnh. Để xoá hoàn cảnh, hãy dùng mà hoạt động trực tiếp trong cửa hàng kiên trì, không tải đối tượng vào bộ nhớ, hiệu suất cải thiện đáng kể.
Các thực hành tốt nhất cho dữ liệu lõi sản xuất- sẵn sàng
Ngay cả một chồng dữ liệu lõi được cấu hình kỹ cũng có thể trở thành một cổ chai hoặc nguồn của bọ nếu không xử lý cẩn thận. Theo các mẫu đã thiết lập, ứng dụng của bạn sẽ được đáp ứng, ổn định và có thể sinh sôi.
An toàn và thiếu sót
Các ngữ cảnh dữ liệu không an toàn sợi. Không bao giờ chia sẻ ngữ cảnh giữa các sợi. Thay vào đó, hãy dùng phương pháp [FLT: 18] để đảm bảo bị giam giữ. Đối với , hoàn cảnh riêng cho hoạt động nền. Khi truy cập vào các vật thể trên chỉ chính, hãy sử dụng hoặc để đảm bảo sự biệt riêng. Đối với [FL: 16], [FL:19], fold / Thay đổi tự động trên bối cảnh chính, nhưng tìm các vật nặng nên được tải xuống nền.
Phiên dịch và chuyển hóa
Khi ứng dụng của bạn tiến hóa, mô hình dữ liệu của bạn sẽ thay đổi và ) di cư thường xuyên ). Di cư . Di cư [FLT:]. Di cư [FLT:]. Di cư [FLT:]. Phương pháp di chuyển nhẹ] có thể xử lý thay đổi đơn giản (phụ thuộc vào các thuộc tính năng, thay đổi tính năng, thay đổi tính năng, thay đổi tính năng, thay đổi tính năng tự động với một bộ nhận diện) nếu bạn thêm tùy chọn. Để tạo một mô hình phức tạp, tạo ra bản đồ và thực hiện thực hiện lệnh: [L]: 20] khi người dùng có thể di chuyển hoàn toàn thất bại.
Cách tô màu
Hiệu suất coreent Data bắt đầu với thiết kế mô hình dữ liệu. Dùng để hỗ trợ [FL:22]. Tránh lấy toàn bộ đồ thị khi chỉ có một tính chất con cần thiết; thay vào đó, hãy dùng và [FL:22] hỗ trợ [FL:22]. Dữ liệu [FL: 2] hỗ trợ [FL:] [FL:] sửa đổi [FL:], nơi mà không có tính chất nào được nạp cho đến khi bạn có thể truy cập. Thay vào đó, bạn có thể tránh [FTL: 23] trong khi đọc các dữ liệu trên bảng.
Lỗi xử lý
Mỗi việc thu thập, lưu và thao tác xoá có khả năng thất bại. Luôn luôn kèm theo những cuộc gọi này trong khối và đưa ra thông điệp lỗi có ý nghĩa cho người dùng. Lưu lỗi thường xảy ra do lỗi hợp lệ hoặc vi phạm mật khẩu, vì vậy kiểm tra cẩn thận lỗi của dữ liệu chứa nhiều lỗi ẩn, mà bạn có thể lặp lại thông qua để cung cấp thông điệp phản hồi cụ thể. Đối với thao tác [FL:26] phù hợp để xoá bỏ các lỗi không tự động. Như vậy bạn có thể cần phải tự động xử lý đối tượng liên quan đến vật.
Kết hợp Dữ liệu lõi với REMUI
Bộ cuộn giấy tự động quan sát bối cảnh chính và làm tươi khung cảnh khi dữ liệu thay đổi. Bạn có thể cấu hình kiểu phân loại và định vị trực tiếp trong tài sản. Để kiểm soát nhiều hạt, hãy đặt bối cảnh quản lý vào môi trường bằng [FL:28]. Khi làm việc với « @ ObllObbbct » hay « < s\ t( s\ t( statejct > mô hình xem), bảo đảm một mô hình giữ khung cảnh hoạt động nếu khung cảnh hoạt động nặng.
Tuy nhiên, bạn có thể thấy rằng bạn đang sử dụng một số phương pháp khác để thay đổi kích cỡ của bạn.
Dữ liệu lõi tương ứng với các tùy chọn bền bỉ khác
Trong khi công ty Dữ liệu là giải pháp chín chắn và tích hợp nhất cho kho lưu trữ iOS tại địa phương, nó không phải luôn luôn là lựa chọn tốt nhất.
- Người dùngDefaults: thích hợp cho một số nhỏ tùy thích của người dùng, nhưng không phải cho dữ liệu phức tạp hay lớn.
- Realm: đề nghị một bản cập nhật đơn giản hơn và tự động phản ứng, nhưng thêm vào phụ thuộc và không tích hợp sâu sắc với mặc định của mình.
- Raw QLite:) cung cấp cho tối đa kiểm soát và hiệu suất cho bộ dữ liệu rất lớn hoặc các thiết lập phức tạp, nhưng yêu cầu quản lý kết nối, di trú và chỉ bằng tay.
- glubKit + lõi Data: Đối với ứng dụng cần thiết tôi iCoud đồng bộ, Apple's cầu Core Data và CloudKit, tự động đồng bộ hóa các thay đổi địa phương đến đám mây.
Đối với hầu hết các ứng dụng iOS tiêu chuẩn cần thiết cấu trúc dữ liệu, các mối quan hệ, và khả năng ngoại tuyến, Core Data vẫn còn là lựa chọn được khuyến khích bởi sự kết hợp không giới hạn của nó với nền tảng và hỗ trợ Apple đang tiếp diễn.
Kết luận
Dữ liệu lõi cung cấp một hệ thống quản lý đồ thị mà trừu tượng hóa sự phức tạp của lưu trữ, thay đổi theo dõi, và quản lý quan hệ. Bằng cách hiểu kiến trúc của nó từ ngữ cảnh được quản lý đối tượng đến hộp bền bỉ- và sau các thực hành đã được chứng minh cho sự đồng bộ, hiệu suất, và xử lý lỗi, các nhà phát triển có thể xây dựng ứng dụng vừa mạnh vừa đáp ứng. Dù bạn đang xây dựng một danh sách đơn giản cho danh sách các công ty vi phạm hoặc một dữ liệu tương tác với dữ liệu tương tác, điều khiển con tin là một kỹ năng có giá trị để mở khóa dữ liệu địa phương quản lý thông tin trên iOS.
Để nghiên cứu thêm, hãy tham khảo ý kiến tài liệu [FLT:] [FLT: 1] [FLT:], [FLT:] [FLT: 2] hướng dẫn lập trình [FLT:], và các nguồn tài liệu cộng đồng như Ray mục [FLT:] [FLT:] , cho bàn tay [FL:5] và hiểu biết sâu sắc hơn về chủ đề tiến bộ như di trú và sự đồng thuận.