mam do czynienia z ram zewnętrzne akcesoria i tu jest mój kod do rejestracji notofication ..Metoda obsługi odebranego powiadomienia powoduje awarię aplikacji. :(
override func viewDidLoad() {
super.viewDidLoad()
EAAccessoryManager.sharedAccessoryManager().registerForLocalNotifications()
NSNotificationCenter.defaultCenter().addObserver(self, selector: "accessoryDidConnectNotify", name: EAAccessoryDidConnectNotification, object: nil)
}
A oto moja funkcja manipulacja metoda ...
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)
I mój problem Jeśli nie podaję żadnych parametrów w funkcji accessoryDidConnectNotify, aplikacja działa poprawnie w widoku alertu po włożeniu akcesorium MFi ..
(i.e) func accessoryDidConnectNotify(){ // works fine (with no arguments)
}
ale muszę obiekt NSNotification być używany wewnątrz mojej funkcji accessoryDidConnectNotify aby uzyskać nazwę akcesorium ... ale jeśli dodać NSNotification Object awarii appliaction na wstawienie akcesorium MFI ...
(i.e) func accessoryDidConnectNotify(notification: NSNotification){
} // crashes app (with arguments)
Jeśli ktoś przyszedł również w poprzek problemu ... proszę nie podzielają
wystarczy zmienić 'accessoryDidConnectNotify' na 'accessoryDidConnectNotify:' –
Twoja funkcja ma jeden argument, stąd nazwa selektora musi być 'accessoryDidConnectNotify:' jako @DharmeshKheni napisał. Oto [więcej informacji] (http://stackoverflow.com/a/24007718/581190). – robertvojta