Có một phương thức trong NSUserDefaults
được gọi registerDefaults:
. Bạn sử dụng phương pháp này để đặt "giá trị mặc định" cho ứng dụng của mình. Về cơ bản, bạn tạo một NSDictionary
chứa các khóa và giá trị mặc định của mình (trong trường hợp của bạn là KHÔNG cho khóa "thông tin đăng nhập đã lưu") và bạn đăng ký bằng cách sử dụng registerDefaults:
. Điều này nếu thường được thực hiện trong + (void)initialize
phương thức của ủy viên ứng dụng để đảm bảo rằng các giá trị mặc định của bạn đã được đăng ký trước khi chúng cần thiết. Những giá trị này chỉ được sử dụng nếu ứng dụng của bạn không thay thế chúng. Nói cách khác, chúng sẽ không được sử dụng trừ khi khóa bạn đang tìm kiếm không nằm trong Miền ứng dụng, tức là người dùng mặc định đọc từ tệp .plist của người dùng.
Mặt khác, bạn có thể chỉ cần kiểm tra thông tin đăng nhập và bật lên một cảnh báo nếu chúng bị thiếu. Điều này giúp loại bỏ nhu cầu giữ giá trị boolean của bạn được đồng bộ hóa với thông tin đăng nhập. Nếu sau đó bạn cung cấp khả năng "xóa thông tin đăng nhập", bạn sẽ không phải nhớ đặt boolean trở lại NO. Nếu thông tin đăng nhập của bạn được lưu ở chế độ mặc định của người dùng, bạn sẽ thực hiện việc này:
NSString *userID = [[NSUserDefaults standardUserDefaults] stringForKey:@"userID"];
NSString *password = [[NSUserDefaults standardUserDefaults] stringForKey:@"password"];
if (userID != nil && password != nil) {
// Code to log user in
} else {
// Code to pop up an alert
}