2015-05-14 4 views
2

Итак, мне было интересно, можно ли сохранить функцию по умолчанию пользователя с помощью Swift. Для строки, например, я хотел бы сделать это:Сохраните функцию NSUserDefaults в Swift

var inputData = "Hi" 
NSUserDefaults.standardUserDefaults.setValueForKey(inputData, forKey: "data") 

Тогда, чтобы сохранить это сделать переменную, я бы сказал:

var gotData = NSUserDefaults.standardUserDefaults.valueForKey("data")! 

Теперь мой вопрос, если это возможно, чтобы сохранить функция по умолчанию пользователя. Например:

var inputData = func helloWorld(){println("Hello World!")} 

Можно ли затем вызвать эту функцию, которая была сохранена в пользовательских дефолтов делать что-то похожее на .valueForKey?

Любая помощь ценится! Заранее большое спасибо!

+0

Что случилось, когда вы его попробовали ... – Wain

+0

Я думаю, что вы смешиваете 'valueForKey' и' objectForKey'. – Mundi

+0

Почему вы хотите сохранить функцию? Какая польза от его спасения. – Sandeep

ответ

1

Вы не можете сохранить функцию до NSUserDefaults. Из NSUserDefaults Class Reference:

объект по умолчанию должен быть список свойств, то есть экземпляр (или для коллекций комбинации экземпляров): NSData, NSString, NSNumber, NSDate, NSArray или NSDictionary , Если вы хотите сохранить какой-либо другой тип объекта, вы должны архивировать его, чтобы создать экземпляр NSData.

Функция не относится к поддерживаемым типам, и, насколько я знаю, вы также не можете архивировать функцию.

Смежные вопросы