嘿,我有放置变量的问题。 我怎样才能使用我使用的变量让我们在函数" A"在另一个功能" B"。换句话说,使用函数" A"在功能" B"
我有功能(" A")来设置通知文本:
let sentence = textField.text! + " Some beautiful text!"
let firstWord = sentence.characters.split(" ").first.map(String.init)
LocalNotificationHelper.sharedInstance().scheduleNotificationWithKey("someText", title: "see options(left)", message: sentence, date: deadlinePicker.date, userInfo: userInfo)
现在我要在这个变量中的另一个函数(" B")里面调用firstWord
:
let predicate = CNContact.predicateForContactsMatchingName(firstWord)
我尝试在sentence
和课外添加第一个变量firstWord
和ViewDidLoad
,但一无所获。我一直收到错误"found nil while unwrapping"
当用户点击这样的通知操作按钮时,我将函数调用为变量predicate
。
NSNotificationCenter.defaultCenter().addObserver(self, selector: "functionWhereIsPredicateVariable:", name: IDENTIFICATOR, object: nil)
我是否必须将firstWord
存储到NSUserDefaults
中,还是必须以其他方式存储?
答案 0 :(得分:1)
您可以将您的姓名保存到userinfo
let userInfo = ["url" : "Hello","name":nameField.text!]
//Set notification
LocalNotificationHelper.sharedInstance().scheduleNotificationWithKey("TempCo", title: "see options(left)", message:nameField.text!+" Your contact needs to be deleted!", date: deadlinePicker.date, userInfo: userInfo)
然后你可以从通知的对象中获取并发布它。
func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, completionHandler: () -> Void) {
if identifier == DELETECONTACT {
print("delete action - tapped")
NSNotificationCenter.defaultCenter().postNotificationName(DELETECONTACT, object:notification.userInfo)
您可以从通知对象中获取姓名
//**DELETE CONTACT FUNCTION**\\
func contactDelete(notification : NSNotification){
let name:String? = notification.object?["name"] as? String
答案 1 :(得分:0)
您有两组具有相同名称的变量,一组在类范围内声明,另一组在函数范围内声明。在函数A中,您设置函数作用域变量的值,但在函数B中,您正在访问仍为零的类作用域变量。
要修复它,请删除函数A中使用句子和firstWord的“let”。