I.e, ứng dụng của tôi đặt một số giá trị mặc định chuẩn ở đầu. Sau đó, những giá trị đó có thể bị người dùng ghi đè. Và khi người dùng làm rối tung mọi thứ, tôi muốn đặt các cài đặt đó trở lại giá trị mặc định của ứng dụng. Theo tôi hiểu, mặc định của ứng dụng là một từ điển khác với từ điển mặc định của người dùng và mặc định người dùng chỉ ghi đè các giá trị mặc định của ứng dụng đó. Nhưng tôi đã không nhìn thấy phương pháp để xóa mặc định của người dùng. Bất kỳ ý tưởng?Làm cách nào để xóa giá trị mặc định của người dùng trong NSUserDefaults?
Trả lời
Hãy thử removeObjectForKey
- điều đó sẽ cho bạn khả năng xóa tùy chọn.
Sử dụng mã này
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"MyKey"];
không quên để đồng bộ hóa nếu bạn muốn tiết kiệm ngay lập tức
[[NSUserDefaults standardUserDefaults] synchronize];
NSUserDefaults Class Reference
đồng bộ hóa - Phương pháp này được tự động gọi trong khoảng thời gian định kỳ , chỉ sử dụng phương thức này nếu bạn không thể chờ đồng bộ hóa tự động (ví dụ, nếu ứng dụng của bạn chuẩn bị thoát) hoặc nếu bạn muốn cập nhật mặc định của người dùng thành những gì trên đĩa mặc dù bạn chưa thực hiện bất kỳ thay đổi nào.
NSUserDefaults * removeUD = [NSUserDefaults standardUserDefaults];
[removeUD removeObjectForKey:@"shoping"];
[[NSUserDefaults standardUserDefaults]synchronize ];
phiên bản Swift để dễ dàng sao chép dán:
var idForUserDefaults = "somestupidtext"
var userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.removeObjectForKey(idForUserDefaults)
userDefaults.synchronize()
hoặc
NSUserDefaults.standardUserDefaults().removeObjectForKey("somestupidtext")
NSUserDefaults.standardUserDefaults().synchronize()
Tài liệu Apple tuyên bố rằng '.synchronize()' "là không cần thiết và không nên sử dụng. Https://developer.apple.com/documentation/foundation/userdefaults/1414005-synchronize –
Cập nhật cho Swift đang 3.0:
UserDefaults.standard.removeObject(forKey: "YOURKEY")
' Giá trị kiểu 'UserDefaults' có không có thành viên 'remove'' –
kbunarjo, Bạn thậm chí còn thử điều này LOL. Swift 3 -UserDefaults.standard.removeObject (forKey: "Key") – Jeff
@Jeff họ vừa phát hành phiên bản mới hơn của Swift 3 (3.1). chưa xem xét tài liệu, vì vậy tôi giả định đây là lý do tại sao phiên bản của tôi không hoạt động nữa. – kbunarjo
Để loại bỏ một KEY cụ thể v alue:
[[NSUserDefaults standardUserDefaults] removeObjectForKey:@"KEY"];
[[NSUserDefaults standardUserDefaults] synchronize];
Nếu bạn cần phải thiết lập lại UserDefaults/Xóa tất cả dữ liệu ngay:
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Swift 3:
if let bundle = Bundle.main.bundleIdentifier {
UserDefaults.standard.removePersistentDomain(forName: bundle)
}
- 1. Cách đăng ký mặc định người dùng bằng NSUserDefaults mà không ghi đè giá trị hiện tại?
- 2. Làm cách nào để đặt giá trị mặc định của một số nguyên trong mongodb?
- 3. Làm cách nào để xóa giá trị mặc định khỏi cột trong oracle?
- 4. Biểu mẫu Django: giá trị mặc định nếu người dùng để trống trường
- 5. Android - giá trị mặc định trong editText
- 6. Làm cách nào để xóa giá trị đã đăng ký trước đó qua [NSUserDefaults registerDefaults:] gọi
- 7. Xóa NSUserDefaults
- 8. Crystal Reports 8.5/9 - Làm cách nào để xóa giá trị "mặc định" cho thông số?
- 9. Đặt giá trị mặc định cho người dùng hiện tại trong Oracle
- 10. Làm cách nào để thay đổi giá trị mặc định của bảng mysql?
- 11. Làm cách nào để thay đổi giá trị mặc định của cột trong PostgreSQL?
- 12. Làm cách nào để đặt giá trị trường mặc định thành giá trị của trường khác trong mô hình Django?
- 13. Làm cách nào để thêm giá trị mặc định (ẩn) để tạo mẫu trong Django?
- 14. Làm cách nào để kiểm tra xem BOOL có tồn tại trong NSUserDefaults cài đặt người dùng không?
- 15. Làm cách nào để có được giá trị của dữ liệu người dùng đã nhập?
- 16. Giá trị mặc định của loại động?
- 17. Có cách nào để đặt giá trị mặc định cho mảng bộ nhớ dùng chung không?
- 18. Giá trị mặc định của thuộc tính lớp GORM giá trị mặc định
- 19. Giá trị CSS mặc định của IE
- 20. Làm cách nào để nhận giá trị mặc định của CustomErrors '' từ mã?
- 21. Làm cách nào để kiểm tra với NSUserDefaults?
- 22. cách đặt giá trị mặc định HTML.EditorFor()
- 23. Knockout.js đặt lại giá trị của một lựa chọn về giá trị mặc định của nó
- 24. Làm cách nào để đặt giá trị mặc định của thuộc tính thiết kế?
- 25. Làm cách nào để đặt giá trị mặc định của hộp nhập liệu bằng jQuery?
- 26. Cách điền một số người dùng mặc định trong Devise?
- 27. hành vi mặc định không phù hợp (NSUserDefaults) trong mặc định mô phỏng iPhone
- 28. Làm cách nào để khởi chạy URL trong trình duyệt mặc định của người dùng từ ứng dụng của tôi?
- 29. Giá trị mặc định của BOOL
- 30. giá trị chung Mặc định
+1 cho [[NSUserDefaults standardUserDefaults] đồng bộ hóa]; Tôi thường quên thêm cái này. – Augustine
@Augustine:) cảm ơn u :) – Rajneesh071
nếu bạn không đồng bộ hóa, nó sẽ tự động đồng bộ hóa khi bạn đóng ứng dụng của mình. –