15/09/2018, 23:40

Những thao tác cơ bản CoreData in Swift 4.2( Phần 1)

1.1 Tạo tự động Khi tạo Project bạn click vào nút “Use Core Data” Đoạn code được xcode tự động sinh ra: 1.2 Tạo thủ công(Trường hợp bạn quên click vào nút Use CoreData) Trong Project, bạn chọn New File và chọn file Data Model và đặt tên: PetPat. Ta được file như ...

1.1 Tạo tự động

Khi tạo Project bạn click vào nút “Use Core Data”


Đoạn code được xcode tự động sinh ra:

1.2 Tạo thủ công(Trường hợp bạn quên click vào nút Use CoreData)

Trong Project, bạn chọn New File và chọn file Data Model và đặt tên: PetPat.

Ta được file như sau:
Trong file AppDelegate bạn viết đoạn code sau:

(Đoạn code tương tự như đoạn code sinh ra tự đông)

2. Tạo thực thể :


Khi các bạn lựa chọn PetPat.xcdatamodeld có 3 chế độ codegen:

  • Chế độ Manual/None
    Đây là chế độ mặc đinh ở Xcode 8, chế độ này dùng khi bạn muốn tự động tạo và duy trì các thay đổi của các lớp con kế thừa NSMnanagedObject Các bạn tạm thời cứ chọn chế độ Manual/None. Các chế độ kia mình sẽ nói rõ ở phần 2.Sau đó bạn chọn Create NSManagedObject Subclasss tưng động sẽ sinh ra 2 file: Friend+CoreDataProperties.swift Friend+CoreDataClass.swift

    File: Friend+CoreDataClass.swift

    File: Friend+CoreDataProperties.swift
    Friend+CoreDataProperties.swift (CoreDataProperties) và Friend+CoreDataClass.swift(CoreDataClass) là 2 thành phần của ManagerObject. File CoreDataClass là nơi các bạn tuỳ chỉnh code


  • NSMnanagedObject là một lớp thực hiện các hành vi cơ bản của một đối tượng
  • NSManagedObjectContext quản lý các object, các thay đổi của các object được lưu giữ trong bộ nhớ trong không gian chứa.
    MỘt object chỉ tồn tại 1 và chỉ 1 context nhưng các bản ghi của object có thể tồn tại trong nhiều context khác nhau. Do đó một đối tượng là duy nhất cho một context cụ thể. The context có vai trò trung tâm trong quản lý vòng đời của các đối tương(bao gồm cả lỗi), để xác nhận , xử lý các mối quan hệ nghịch đảo , hoàn tác.
    Thông qua context bạn có thể lấy các đối tượng từ persistent store làm thay đổi các đối tượng đó,có thể huỷ bỏ các thay đổi đó rồi đưa chúng trở lại persistent store.
    Bạn có thể chèn các đối tượng mới và xoá các đối tượng mà bạn đã tìm nạp và commit các sửa đổi với persistent store.
  • NSPersistentContainer: Một vùng chứa đóng gói theo ngăn xếp dữ liệu của bạn Về cơ bản nó đại diện cho kho lưu dữ liệu của bạn. Bạn phải yêu cầu persistent container để lấy ra các vùng chứa (NSManagedObjectContext) mà bạn sử dụng để lưu trữ các đối tượng quản lý của mình.

Ok lý thuyết thế là đủ bây giờ làm thử demo:

  • Các bạn Tạo giao diện như sau:
  • Các bạn viết các đoạn code như sau:

  • func refresh():
    - Tìm kiếm dữ liệu

Bạn có thể tham khảo sourcode ở đây: https://drive.google.com/file/d/18fYRdp53-jL7CfdPtZIPh9TcJytP5zrB/view?usp=sharing

Nguồn Tham khảo:

  • https://developer.apple.com/documentation/coredata
  • https://www.raywenderlich.com/3444-beginning-core-data
0