Chào các bạn, ở các bài hướng dẫn vừa qua, các ban đã có thể tập tành code được những ứng dụng đầu tiên cho riêng mình. Trong quá trình lập trình đó, mình chắc chắn rằng các bạn sẽ có nhiều câu hỏi về làm thế nào để lưu trữ dữ liệu từ người dùng nhập vào và lần sau người dùng mở ứng dụng lên có thể sử dụng lại dữ liệu đó?….
Để lưu trữ dự liệu, chúng ta có nhiều cách khác nhau, để lưu trữ sao cho khoa học và dễ dàng sử dụng, chúng ta có môn học về Cơ Sở Dữ Liệu ( Database ). Bạn nào chưa học qua, bạn nên tìm tài liệu để hiểu căn bản về nó do bất kỳ software, website, app nào cũng cần sắp xếp và lưu trữ dữ liệu một cách khoa học.
Trong phạm vi bài viết này, mình sẽ hướng dẫn các bạn sử dụng CoreData để lưu thông tin và tìm lại thông tin đó.
Mục tiêu của chúng ta là sẽ viết 1 app tên là “Hỏi đáp địa danh” với 2 chức năng là
- Người dùng nhập vào tên địa danh và quốc gia sở hữu địa danh đó , app của chúng ta sẽ lưu vào Cơ Sở Dữ Liệu (CSDL).
- Người dùng nhập vào tên địa danh, app của chúng ta sẽ tìm trong CSDL để đưa ra tên quốc gia sở hữu địa danh đó. Ví dụ : Mình nhập vào Sài Gòn -> App sẽ xuất ra Việt Nam.
Bây giờ là các bước thực hành:
1. Tạo project với CoreData
Việc khởi tạo bình thường như các project trước
Create new project » iOS » Single View.
Lưu ý: Lần này nhớ check chọn “Use Core Data” như trong hình.
2 . Xây dựng giao diện
Hãy tạo giao diện như trong thiết kế dưới đây
- Có 2 Text Field để người dùng nhập Địa Danh và Quốc Gia
- Có 2 Button để người dùng thêm vào CSDL và Lấy dữ liệu ra trả lời
- Có 1 Label dùng để hiển thị trạng thái hoặc trả lời từ thông tin địa danh.
3. Xây dựng CSDL Database
- Chọn file .xcdatamodeld trên cây thư mục bên trái
- Bấm chọn Add Entity phía dưới cùng để tạo 1 Entity ( Bạn có thể hiểu nó tương tự như các gọi Bảng – Table trong CSDL ).
- Mình đặt tên cho nó là ThongTin như trong hình.
- Sau đó bấm + để thêm Attribute cho Entity ThongTin
Dựa theo mục tiêu ta muốn lưu trữ là 2 nơi để lưu tên địa danh và tên quốc gia, do đó ta cần tạo 2 Attributes như hình sau, nhớ set Type cho Attribute.
Type ở đây là định dạng kiểu dữ liệu,nếu bạn muốn lưu số nguyên thì bạn dùng kiểu Int , lưu ngày tháng thì dùng kiểu Date, ở đây mình dùng String bởi vì tên quốc gia và địa danh sẽ là một dãy các ký tự sẽ được lưu vào.
Xong, như vậy bạn đã hoàn tất việc dựng CSDL cho ứng dụng này.
4. Liên kết giao diện vão ViewController
Bước này bạn thực hiện như những gì đã học ở bài 7 để liên kết các đối tượng trên giao diện với code. File ViewController của chúng ta sẽ có các biến giao diện và các hàm như bên dưới
5. Viết chức năng Thêm Dữ Liệu
Để thêm tương tác CoreData, trước tiên bạn phải import CoreData vào
Để viết chức năng lưu vào CSDL bạn phải thực hiện từng bước như đoạn code dưới đây
Ở bước khai báo CSDL, tạo đối tượng muốn lưu… bạn không cần quan tâm, cứ copy nguyên đoạn code trên là được. Sau này khi thành thục, bạn muốn có thể tìm hiểu thêm.
Ở đây bạn có 3 thông tin chính cần điền
- A : Bạn viết tên Entity bạn muốn truy cập vào đây, ở đây ta chỉ có 1 Entity duy nhất đã được tạo và tên là ThongTin. ( Các gọi của database thường là tên Bảng – Table )
- B: tên atribute bạn muốn dữ liệu tương ứng được lưu vào (Theo như cách gọi trong database là tên Cột – Column )
- C: Ở đây là dữ liệu bạn muốn ghi vào, mình lấy dữ liệu từ 2 text field nên sử dụng diadanh.text và quocgia.text. Lưu ý: Bạn cộng với + “” để đưa dữa liệu ở dạng String như đoạn code trên.
Như vậy mỗi lần action themdulieu thực hiện, nó sẽ lấy nội dung trên 2 ô text field và nhập vào CSDL với Attribute tương ứng.
6. Chức năng Tìm dữ liệu ( Truy vấn CSDL)
Tương tự như giải thích trên, ta có 3 vị trí
- A: Tên Entity
- B: Tên Attribute bạn muốn lấy ra so sánh với dữ liệu điều kiện, ở đây là so sánh với diadanh.text xem coi có dữ liệu nào trùng không
- C: Attribute mà mình muốn lấy dữ liệu ra.
7. Kết quả cuối cùng
Thêm dữ liệu
Lây dữ liệu
FB: Lập Trình Swift
SRC CODE:
http://www.mediafire.com/download/q8ehgch2q633stc/HoiDapDaiDanh.zip