Tag: swn nsnotificationcenter

是否删除观察员必须(必要)?

有一个观察者,我需要在所有的应用程序生命周期中,我是否将它删除? 我认为GC会在应用程序closures后将其删除,对吗? 如果是的话,那么我什么时候可以删除它? 在deinit ?

keyboardWillShow被其他应用程序的键盘调用

我知道这是应该发生的事情,但是这导致了我不知如何解决的问题。 我想在键盘显示时将视图向上移动,以便我的文本字段保持可见。 我的文本字段有数字小键盘。 我使用通知和keyboardWillShow/Hide来移动我的视图向上/向下select文本字段时。 现在假设我点击一个文本字段,然后切换到另一个使用不同的键盘(不是数字键盘)的应用程序。 keyboardWillShow被调用的大小错误的键盘(从另一个应用程序的大小),我的看法是错误的数额(它甚至不应该移动)。 所以,当我回到我的应用程序,我的看法是在错误的地方,键盘甚至没有显示,然后keyboardWillHide被调用,视图移回到位(从无处)。 但keyboardWillShow甚至不应该被称为其他应用程序在第一位。 我正在删除viewWillDisappear的通知,但这仍然发生…也许keyboardWillShow被称为其他应用程序viewWillDisappear被称为我的? 这是我的代码: override func viewWillAppear(animated: Bool) { super.viewWillAppear(animated) NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil) NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillHide:", name: UIKeyboardWillHideNotification, object: nil) for subview in self.view.subviews { if subview.isKindOfClass(UITextField) { let textField = subview as! UITextField textField.addTarget(self, action: "textFieldDidReturn:", forControlEvents: UIControlEvents.EditingDidEndOnExit) textField.addTarget(self, action: "textFieldDidBeginEditing:", forControlEvents: UIControlEvents.EditingDidBegin) } […]

在Swift中使用Reachability,NSNotification和Network Link Conditioner检测networking连接变化

我正在尝试将networking连接检测function集成到我的应用程序中,但是似乎在某些地方我犯了一个错误,因为我的networking更改没有被检测/打印到控制台中。 正如在文章中提到的,我目前正在使用以下这些类和工具来完成这项工作: 可达性{.h, .m} NSNotificationCenter networking链接调节器 码 在AppDelegate.Swift中 ,我设置了NSNotificationCenter来检测更改: func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // … // A: Checks if the device is connected to the internet var defaultCenter: Void = NSNotificationCenter().addObserver(self, selector:"checkForReachability", name: kReachabilityChangedNotification, object: nil) } 在同一个AppDelegate类中,我也创build了这个函数,在有变化时触发: func checkForReachability () { var networkReachability = Reachability.reachabilityForInternetConnection() networkReachability.startNotifier() var remoteHostStatus […]