2016-03-16 1 views
0

Здравствуйте, я сейчас делаю проект, в котором пользователь вводит что-то в текстовое поле, и нажимает кнопку, где все, что пользователь вводит в текстовое поле, появляется как часть оповещения уведомление. Для этого я сохраняю textfield.text как переменную, а затем использую строчную интерполяцию, чтобы включить ее в alertbody. Проблема в том, что время, в которое я запускаю уведомления, меняется каждую неделю, поэтому я должен делать новые уведомления. И я все еще хочу использовать все, что пользователь вводил в текстовое поле. Но поскольку textfield.text был сохранен внутри функции, я не думаю, что он будет храниться вне функции. Это то, что мой код выглядит так далекоSwift Сохранение информации в константе и ее хранение

override func viewDidLoad() { 
super.viewDidLoad() 
timer = NSTimer.scheduledTimerWithTimeInterval(604800, target: self,selector:Selector("repeater"), userInfo: nil, repeats: true) 
} 

savedtext:String!  

@IBAction func setNotification{ 
textfield.text = savedtext 
//set notifications and other stuff here 
} 
//outside the function savedtext should not have the textfield's info 
func repeater{ 
//setting notification 
} 

Извините, если мой вопрос немного трудно понять любая помощь

ответ

3

Я хотел бы использовать NSUserDefaults здесь, она будет сохраняться ваши данные в key-value map, даже после того, как пользователь или система убили приложение. Код будет выглядеть следующим образом

let ALERT_MESSAGE_KEY : String = "myAlertMsgKey" 

@IBAction func setNotification{ 
    let defaults = NSUserDefaults.standardUserDefaults() 
    defaults.setValue(textfield.text , forKey: ALERT_MESSAGE_KEY) 
    NSUserDefaults.standardUserDefaults().synchronize() 
    //set notifications and other stuff here 
} 

и функции повторителя:

func repeater { 
    let defaults = NSUserDefaults.standardUserDefaults() 
    let alertMessage = defaults.valueForKey(ALERT_MESSAGE_KEY) as? String ?? "No message saved" 
} 

Вы можете также использовать Core Data для этого, но это было бы излишним что-то так просто

+0

Большое спасибо, ваш ответ помог alot – skhiomura

+0

Есть ли способ установить значение по умолчанию для чего-то, хранящегося в 'NSUserDefaults', которое пользователь может изменить, после чего он не вернется к умолчанию? Или я должен использовать plist для этого? –