TextField 作为应用程序启动时的变量粘在 LocalNotification 中
TextField as variable on app launch sticked into LocalNotification
第二次点击按钮时,我不再有任何价值了。如何在每次应用加载时加载变量。我正在谈论的变量正在发生变化,因为它始终是 textField.text!
并且是用户输入。我在用户点击 LocalNotification
操作时使用它,应用程序打开然后函数触发如下:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "someFunctionWhereIsMyProblematicVariableINeedToLoad:", name: IDENTIFIER, object: nil)
如何在每次用户输入时将变量粘贴到本地通知中。每个通知是否有所不同或只是文本更改?是否有任何 ID 可以使每个通知变得特殊?
LocalNotificationHelper.sharedInstance().scheduleNotificationWithKey("someText", title: "see options(left)", message:textField.text!+"someText", date: deadlinePicker.date, userInfo: userInfo)
我需要 textField.text
在这个变量中:let predicate = CNContact.predicateForContactsMatchingName(textField.text!)
我试图将它们存储到 NSUserDefaults
和数组中并循环遍历 arrays
以查找值是否存在等。但它只在第一次和第二次是 nil
编辑: 它只保留最后输入的值作为变量。如何保留它们?
在这里,我用图片向您展示了我试图用文字解释的内容:
现在,如果点击蓝色按钮,我会在需要使用 "firstTimeEntered" 作为变量的地方启动功能,但在第二次通知时它是 "SecondTimeEntered"
变量class范围:
var sentence:String = ""
var firstWord = [String]()
var firstWordAsString:String = ""
函数"A":
sentence = textField.text! + " needs to be deleted from array."
var firstWordAsString = sentence.characters.split(" ").first.map(String.init)
firstWord.append(firstWordAsString!)
defaults.setObject(firstWord, forKey: "firstWord")
let userInfo = ["url" : "Hello"]
//Set notification
LocalNotificationHelper.sharedInstance().scheduleNotificationWithKey("someText", title: "see options(left)", message: sentence, date: deadlinePicker.date, userInfo: userInfo)
函数"B":
defaults.objectForKey("firstWord") as? String
if contacts.contains(firstWordAsString){
let predicate = CNContact.predicateForContactsMatchingName(firstWordAsString)
这最终是一个范围问题。
//This is the largest scope called the global scope. anything available here is available anywhere in your application.
class myclass {
//this is the class level scope any variables here would be available from within the class but not outside of it. I can use any variables in the class scope or the global scope.
func myFunction() {
//this is the function scope, any variables here would be available from within the function but not outside of this function. I can use any variables in the class scope, global scope and my own scope.
}
func mySecondFunction() {
//this is also the function scope, I can have my own variables but I cannot see the variables in myFunction()
}
因此,如果您要将 var savedValues = [String]()
放在一个函数的顶部,则其他函数将无法使用它。但是如果你把它放在 class 范围内,它就可以在两个函数中使用。每次函数启动时,它都会定义函数变量,当它自己退出时,变量会从内存中删除。
要解决您的问题,请在 class 中放置一个字符串数组,然后使用该 class 级别数组的 append
方法向其中添加新内容。然后,您可以使用过滤方法或循环遍历该数组来搜索该数组。
第二次点击按钮时,我不再有任何价值了。如何在每次应用加载时加载变量。我正在谈论的变量正在发生变化,因为它始终是 textField.text!
并且是用户输入。我在用户点击 LocalNotification
操作时使用它,应用程序打开然后函数触发如下:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "someFunctionWhereIsMyProblematicVariableINeedToLoad:", name: IDENTIFIER, object: nil)
如何在每次用户输入时将变量粘贴到本地通知中。每个通知是否有所不同或只是文本更改?是否有任何 ID 可以使每个通知变得特殊?
LocalNotificationHelper.sharedInstance().scheduleNotificationWithKey("someText", title: "see options(left)", message:textField.text!+"someText", date: deadlinePicker.date, userInfo: userInfo)
我需要 textField.text
在这个变量中:let predicate = CNContact.predicateForContactsMatchingName(textField.text!)
我试图将它们存储到 NSUserDefaults
和数组中并循环遍历 arrays
以查找值是否存在等。但它只在第一次和第二次是 nil
编辑: 它只保留最后输入的值作为变量。如何保留它们?
在这里,我用图片向您展示了我试图用文字解释的内容:
现在,如果点击蓝色按钮,我会在需要使用 "firstTimeEntered" 作为变量的地方启动功能,但在第二次通知时它是 "SecondTimeEntered"
变量class范围:
var sentence:String = ""
var firstWord = [String]()
var firstWordAsString:String = ""
函数"A":
sentence = textField.text! + " needs to be deleted from array."
var firstWordAsString = sentence.characters.split(" ").first.map(String.init)
firstWord.append(firstWordAsString!)
defaults.setObject(firstWord, forKey: "firstWord")
let userInfo = ["url" : "Hello"]
//Set notification
LocalNotificationHelper.sharedInstance().scheduleNotificationWithKey("someText", title: "see options(left)", message: sentence, date: deadlinePicker.date, userInfo: userInfo)
函数"B":
defaults.objectForKey("firstWord") as? String
if contacts.contains(firstWordAsString){
let predicate = CNContact.predicateForContactsMatchingName(firstWordAsString)
这最终是一个范围问题。
//This is the largest scope called the global scope. anything available here is available anywhere in your application.
class myclass {
//this is the class level scope any variables here would be available from within the class but not outside of it. I can use any variables in the class scope or the global scope.
func myFunction() {
//this is the function scope, any variables here would be available from within the function but not outside of this function. I can use any variables in the class scope, global scope and my own scope.
}
func mySecondFunction() {
//this is also the function scope, I can have my own variables but I cannot see the variables in myFunction()
}
因此,如果您要将 var savedValues = [String]()
放在一个函数的顶部,则其他函数将无法使用它。但是如果你把它放在 class 范围内,它就可以在两个函数中使用。每次函数启动时,它都会定义函数变量,当它自己退出时,变量会从内存中删除。
要解决您的问题,请在 class 中放置一个字符串数组,然后使用该 class 级别数组的 append
方法向其中添加新内容。然后,您可以使用过滤方法或循环遍历该数组来搜索该数组。