Lưu trữ dữ liệu với NSUserDefault

I. Thông tin chung:

– Lưu trữ dữ liệu là một phần không thể thiếu đối với hầu hết các chương trình. Chẳng hạn như khi bạn chơi game, bạn cần lưu lại những thành tích mà bạn đạt được hay những vật dụng mà bạn đã mua hay đã sử dụng.

– NSUserDefault là cách lưu dữ liệu nhanh chóng và dễ dàng nhất của Object C. Nó chuyên dùng để lưu những dữ liệu đơn giản như các chuỗi (string), số lượng (number) hay đơn thuần chỉ là một biến bool. Ngoài ra nó cũng có thể dùng để lưu lại các NSArray hay NSDictionary nếu bạn không đưa những dữ liệu phức tạp vào như phim, hình ảnh và âm thanh. Đây là giải pháp tốt nhất nếu bạn muốn lưu lại những thiết lập (setting hay option) dành cho chương trình.

II. Nội dung chính:

Lưu trữ với NSUserDefault thực sự rất đơn giản. NSUserDefault lưu trữ thông tin với những từ khóa (keyword).

1. Lưu dữ liệu vào trong NSUserDefault:
Bạn chỉ cần tạo một instant NSUserDefault và truy cập dữ liệu với keyword của nó.

GameScore = 100;

Username = [[NSString alloc] initWithFormat:@”huygamer”];

NSUserDefaults * lkUserDefault =  [NSUserDefaults standardUserDefaults];

[lkUserDefault setInteger:GameScore forKey:@”GameScore”];

[lkUserDefault setObject:Username  forKey:@”MainUser”];

[lkUserDefault synchronize];

=> Đây là các bước để lưu dữ liệu người dùng vào trong NSUserDefault

2. Lấy dữ liệu từ trong NSUserDefault ra:
Bạn tạo một instant NSUserDefault xong và lấy dữ liệu dựa vào từ khóa của nó:

NSUserDefault *lkUserDefault = [NSUserDefault standardUserDefaults];

int GameScore = [[lkUserDefault  objectForKey:@”DiemSo”] intValue];

NSString *username = [lkUserDefault objectForKey:@”Username”];

3. Đặc điểm:

– NSUserDefault là một singleton nên bạn không cần phải lo lắng cho việc tạo lại nó liên tục do nó chỉ trả về một instant duy nhất có dữ liệu thống nhất từ đầu đến cuối toàn chương trình.
– NSUserDefault là cách đơn giản nhất để lưu dữ liệu của người dùng. Chỉ cần tạo một instant sau đó sử dụng.
– NSUserDefault cho mỗi ứng dụng là tách biệt với nhau. Nó được lưu cùng vị trí với chương trình và nếu chương trình bị xóa cùng toàn bộ dữ liệu bạn cũng sẽ mất toàn bộ dữ liệu mà bạn lưu trữ.

– NSUserDefault lưu dữ liệu trên thiết bị nên cho dù bạn có tắt chương trình xong chạy lại thì dữ liệu vẫn được lưu và lấy ra bình thường. Thậm chí nếu bạn xoá chương trình nhưng không xoá dữ liệu lưu trên đó thì nó vẫn còn nằm trong máy và cài lại chính chương trình đó thì bạn vẫn có thể sử dụng dữ liệu cũ (cùng account nhé)

III. Kết luận:

– Lưu trữ dữ liệu là một phần rất quan trọng của chương trình. Nó giúp lưu lại quá trình làm việc của người sử dụng và có thể tiếp tục làm việc từ điểm đã làm tiếp từ hôm qua.

– NSUserDefault chỉ là một phương pháp lưu trữ đơn giản để có thê lưu dấu trang, những thuộc tính cần thiết để chạy chương trình. Ngoài NSUserDefault còn có hệ thống quản lý file của IOS (IOS’s file management system), SQLIte (database SQL gọn nhẹ thường được sử dụng cho các hệ thống di động) và Core Data. Hệ thống GameKit là hệ thống lưu trữ dữ liệu đặc biệt dành cho game, nó không chỉ lưu dữ liệu của cá nhân mà còn lưu dữ liệu và so sánh với toàn thế giới.

– Hãy chọn cách thích hợp để lưu trữ data cho chương trình của bạn.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: