Нет необходимости, так как это
singleton pattern так что только один экземпляр поддерживается автоматически
NSUserDefaults
.
Update после комментариев @NikolaiRuhe (большое спасибо):
Там нет необходимости в NSUserDefaults
предоставляет экземпляр по умолчанию, который может быть использован для большинства целей, которые подвергаются методом sharedUserDefaults
класса, который вы называете. Это не технически singleton, поскольку вы не вынуждены использовать этот экземпляр по умолчанию. Однако, если вы всегда используете sharedUserDefaults
, тогда будет создан только один экземпляр.
Если вы заинтересованы в сохранении ввода, тогда создайте методы в своих классах для выполнения загрузки и сохранения в/из NSUserDefaults
; например:
- (void)loadConfig
{
NSUserDefaults *userDefaults = [NSUserDefaults sharedUserDefaults];
_someObjectProperty = [userDefaults objectForKey:@"someProperty"];
_someIntProperty = [userDefaults integerForKey:@"anotherProperty"];
}
Да, но вы можете сохранить строки кода, инициализируя их только один раз, не так ли? –
@DariusMiliauskas На самом деле нет. Вы можете написать метод удобства для своего класса, который автоматически сохраняет каждое свойство, а затем вызывает этот метод, который сохранит строки и уменьшит ошибки. – trojanfoe
Nitpicking: это не реальный * singleton *, но структура предоставляет общий «стандартный» экземпляр, который хорош для большинства случаев. Однако вы можете создать больше экземпляров для конкретных случаев использования. –