Что такое NsUserdefault? и как его можно использовать для хранения постоянных данных приложения. Пожалуйста, очистите мои сомнения относительно того, когда их использовать и как они могут быть полезными для работы?NSUserdefault и основные данные
ответ
С классом NSUserDefaults
вы можете сохранять настройки и свойства, относящиеся к приложениям или пользовательским данным.
Например, вы можете сохранить изображение профиля, заданное пользователем, или цветовую схему по умолчанию для приложения. Объекты будут сохранены в так называемом iOS “defaults system”
. Система по умолчанию iOS доступна по всему коду вашего приложения, и любые данные, сохраненные в системе по умолчанию, будут сохраняться через сеансы приложений. Это означает, что даже если пользователь закрывает ваше приложение или перезагружает свой телефон, сохраненные данные по-прежнему будут доступны при следующем открытии приложения.
Performance
NSUserDefaults
класс кэширует значения внутренне, так что поиск происходит очень быстро. Накладные расходы [NSUserDefaults standardUserDefaults]
против переменной экземпляра настолько малы, что вы даже не заметили бы этого, если бы вы сделали это 5 миллионов раз в своем коде.
NSUserDefaults используются для сохранения очень легких данных, где, как и другие подходы, хорошо хранить большие объемы данных, с которыми работает приложение.
NSUserDefaults делает невероятно легким, так как вам не нужно беспокоиться о файлах, объектах, выборках, .... Все это делается в одной строке.
Класс NSUserDefaults очень похож на нечто, называемое списком свойств (aka plist). Плиты ограничены в том, какие объекты они могут хранить. Шесть типов plists могут хранить являются:
- NSData
- NSString
- NSNumber
- NSDate
- NSArray
- NSDictionary
Использование: NSUserDefaults
используется для s то есть значения, которые относятся к настройкам пользователей, и их нужно помнить, даже когда приложение было убито и перезапущено. Сказав, что, как указано в другом ответе, мы должны помещать только объекты с взвешенным весом в NSUserDefaults
.
Для других тяжелых изображений сохраняйте и перезагружайте пользовательскую файловую систему. Для вещей, которые включают поиск по сохраненным данным, используйте Core Data.
Запись Для NSUserDefaults
:
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject("Your Object", forKey: "yourKey")
Чтение из NSUserDefaults
:
let defaults = NSUserDefaults.standardUserDefaults()
if let value = defaults.stringForKey("yourKey")
{
print(value)
}
Другие полезные методы Круглосуточные:
func setBool(value: Bool, forKey defaultName: String)
func setInteger(value: Int, forKey defaultName: String)
func setFloat(value: Float, forKey defaultName: String)
func setDouble(value: Double, forKey defaultName: String)
func setObject(value: AnyObject?, forKey defaultName: String)
func setURL(url: NSURL, forKey defaultName: String)
Размер хранения:
Пока есть достаточно места на iPhone/IPad, вы можете хранить значения NSUserDefault. Все эти значения хранятся в файле .plist, и этот файл очень мал, большую часть времени менее 1 кб. Но держите это как можно более легким.
abhinav У меня есть одно сомнение в nsuserdefault. Каковы максимальные данные/размер, который мы можем хранить. –
См. Мое обновленное сообщение. @ Anbu.Karthik – Abhinav
Это часть кода, которую я сделал в качестве демонстрационного использования NSDefaultUser.
для сохранения данных
NSString * name = _tf_name.text; NSString * email = _tf_email.text; int age = [[_tf_age text] integerValue];
// Create Instance of NSUserDefaults
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
// Set the object and YOU name the key, we are defining the key here
[defaults setObject:name forKey:@"firstName"];
[defaults setObject:email forKey:@"email"];
[defaults setInteger:age forKey:@"age"];
// Call Sync to Save Objects
[defaults synchronize];
// Загрузка данных
// Get Saved Objects
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *name = [defaults objectForKey:@"firstName"];
NSString *email = [defaults objectForKey:@"email"];
int age = [defaults integerForKey:@"age"];
NSString *ageString = [NSString stringWithFormat:@"%i", age];
// Load UI
_tf_name.text = name;
_tf_email.text = email;
_tf_age.text = ageString;
- 1. Основные данные и полупостоянные данные
- 2. NSDictionary и основные данные
- 3. UIManagedDocument и основные данные
- 4. GCD и основные данные
- 5. Основные данные и NSOperation
- 6. InAppSettingsKit и основные данные
- 7. Основные данные и NSDate
- 8. Основные данные и @unionOfSets
- 9. Основные данные и UIActivityViewController
- 10. Основные данные и многопоточность
- 11. Основные данные и предикат
- 12. UICollectionView и основные данные
- 13. Основные данные и MySQL
- 14. NSSet и основные данные
- 15. Основные данные и TabViewController
- 16. Основные данные и JSON
- 17. Основные данные и didSelectRowAtIndexPath
- 18. Основные данные и отношения
- 19. NSLog и основные данные
- 20. Основные данные - Основные вопросы
- 21. Основные данные
- 22. Основные данные и сегодня виджет
- 23. Основные данные, UITableView и UISegmentedControl
- 24. Основные данные и местоположение ядра
- 25. Основные данные и переходные свойства
- 26. Основные данные Сохранение и выборка
- 27. Основные данные и текстовый формат
- 28. Основные данные и кэширование изображений
- 29. Производительность и основные данные RestKit
- 30. NSURLSessionDataTask отменить и основные данные
Следуйте за этим - http://www.icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretrieving-data-using-nsuserdefaults/ –