接收到的通知的方法处理程序使应用程序崩溃。 :(
Method handler for received Notification crashes the application. :(
我正在处理外部附件框架,这是我注册通知的代码..
override func viewDidLoad() {
super.viewDidLoad()
EAAccessoryManager.sharedAccessoryManager().registerForLocalNotifications()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "accessoryDidConnectNotify", name: EAAccessoryDidConnectNotification, object: nil)
}
这是我的方法处理函数...
func accessoryDidConnectNotify(notification: NSNotification){
let alert : UIAlertController = UIAlertController(title: "Alert", message: "MFi Accessory Connected", preferredStyle:UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "ok", style: UIAlertActionStyle.Default, handler: { (action) -> Void in
}))
self.presentViewController(alert, animated: true, completion: nil)
我的问题是,如果我不在 accessoryDidConnectNotify 函数中提供任何参数,当我插入 MFi 配件时,应用程序会正常运行并继续显示警报视图..
(i.e) func accessoryDidConnectNotify(){ // works fine (with no arguments)
}
但我需要在我的 accessoryDidConnectNotify 函数中使用 NSNotification 对象来获取配件的名称
...但是如果我添加 NSNotification 对象,应用程序会在插入 MFi 配件时崩溃...
(i.e) func accessoryDidConnectNotify(notification: NSNotification){
} // crashes app (with arguments)
如果有人也遇到了这个问题...请分享
如果您的方法没有任何参数,那么您可以这样调用它:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "accessoryDidConnectNotify", name: EAAccessoryDidConnectNotification, object: nil)
通过使用 "accessoryDidConnectNotify"
.
这样您就可以像这样使用该方法:
func accessoryDidConnectNotify(){ // works fine (with no arguments)
//Your code
}
但是如果你的方法有参数那么你必须这样调用它:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "accessoryDidConnectNotify:", name: EAAccessoryDidConnectNotification, object: nil)
通过使用这个 "accessoryDidConnectNotify:"
。在这里你必须添加 :
.
现在你可以这样调用带参数的方法了:
func accessoryDidConnectNotify(notification: NSNotification){
//Your code
}
我正在处理外部附件框架,这是我注册通知的代码..
override func viewDidLoad() {
super.viewDidLoad()
EAAccessoryManager.sharedAccessoryManager().registerForLocalNotifications()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "accessoryDidConnectNotify", name: EAAccessoryDidConnectNotification, object: nil)
}
这是我的方法处理函数...
func accessoryDidConnectNotify(notification: NSNotification){
let alert : UIAlertController = UIAlertController(title: "Alert", message: "MFi Accessory Connected", preferredStyle:UIAlertControllerStyle.Alert)
alert.addAction(UIAlertAction(title: "ok", style: UIAlertActionStyle.Default, handler: { (action) -> Void in
}))
self.presentViewController(alert, animated: true, completion: nil)
我的问题是,如果我不在 accessoryDidConnectNotify 函数中提供任何参数,当我插入 MFi 配件时,应用程序会正常运行并继续显示警报视图..
(i.e) func accessoryDidConnectNotify(){ // works fine (with no arguments)
}
但我需要在我的 accessoryDidConnectNotify 函数中使用 NSNotification 对象来获取配件的名称 ...但是如果我添加 NSNotification 对象,应用程序会在插入 MFi 配件时崩溃...
(i.e) func accessoryDidConnectNotify(notification: NSNotification){
} // crashes app (with arguments)
如果有人也遇到了这个问题...请分享
如果您的方法没有任何参数,那么您可以这样调用它:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "accessoryDidConnectNotify", name: EAAccessoryDidConnectNotification, object: nil)
通过使用 "accessoryDidConnectNotify"
.
这样您就可以像这样使用该方法:
func accessoryDidConnectNotify(){ // works fine (with no arguments)
//Your code
}
但是如果你的方法有参数那么你必须这样调用它:
NSNotificationCenter.defaultCenter().addObserver(self, selector: "accessoryDidConnectNotify:", name: EAAccessoryDidConnectNotification, object: nil)
通过使用这个 "accessoryDidConnectNotify:"
。在这里你必须添加 :
.
现在你可以这样调用带参数的方法了:
func accessoryDidConnectNotify(notification: NSNotification){
//Your code
}