20得票10回答
NSNotificationCenter在Swift 3.0中用于键盘的显示和隐藏。

我正在尝试在键盘显示和消失时运行一个函数,并且有以下代码:let notificationCenter = NotificationCenter.default notificationCenter.addObserver(self, selector: #selector(ViewContr...

19得票2回答
使用KVO和NSNotificationCenter观察可变数组的变化有什么区别?

在我的模型中,我有一个名为“events”的对象数组。我希望每当向“events”添加新对象时,我的控制器都会收到通知。 我认为实现这个功能的好方法是使用KVO模式,在“events”更改(添加新对象)时收到通知。// AppDelegate // events is a NSMutableA...

19得票4回答
主线程上的NSOperation和NSNotificationCenter

我有一个NSOperation。 当它完成时,我会发出一个NSNotificationCenter来通知程序该NSoperation已经完成并更新GUI。 据我所知,对NSNotificationCenter的监听器不会在主线程上运行,因为NSOperation不在主线程上。 当我触发事件...

19得票4回答
在iOS中检测旋转变化

我正在制作一款iOS应用程序,需要在旋转时进行一些界面重新排列。我尝试通过实现- (void)orientationChanged:(NSNotification *)note来检测旋转,但这会通知我设备朝上或朝下的情况。 我想找到一种只在接口方向改变时得到通知的方法。

19得票5回答
在UIViewController中添加和移除NSNotificationCenter的观察者

查看了各种苹果的例子(例如Add Music),在这些例子中我发现他们在viewDidLoad中向默认的NSNotificationCenter添加观察者,然后在dealloc中将它们删除。这似乎很危险,因为viewDidLoad可能会被多次调用而没有调用dealloc。这将导致同一观察者多次...

17得票3回答
用闭包语法创建的NotificationCenter观察者,通过名称删除是否足够?

我有一些使用块/尾随闭包语法创建的通知,看起来像这样:NotificationCenter.default.addObserver(forName: .NSManagedObjectContextObjectsDidChange, object: moc, queue: nil) { note...

17得票1回答
iOS iMessage扩展截屏检测

请使用Swift 4+ 注意:我在iMessage扩展程序中检测截图,而不是在标准的iMessage视图中。 更新 - 我想出了一个可行的解决方案,在敏感信息期间每0.3秒左右检查照片库,以检查是否添加了新的屏幕截图。如果用户没有给予照片库权限,它将不会向他们显示内容,直到他们启用它。然而...

16得票5回答
连接Lightning键盘或智能键盘后没有收到EAAccessoryDidConnectNotification和EAAccessoryDidDisconnectNotification通知

连接闪电键盘或智能键盘后,我无法获得这两个通知:EAAccessoryDidConnectNotification 和 EAAccessoryDidDisconnectNotification。 但是,使用以下代码在iOS9.3上可以正常工作: [[NSNotificationCenter d...

16得票5回答
实例被释放时,与之仍然注册的键值观察者也被注销了。

我有一个UITableView。 这里有不同的单元格。每个单元格都有一个模型。使用KVO和NotificationCenter,单元格监听模型的变化。当我离开ViewController时,会出现以下错误:An instance 0x109564200 of class Model was ...

16得票4回答
在ARC中,我们需要显式发送removeObserver吗?

如果一个对象已经被添加为NSNotificationCenter的观察者,我们是否需要显式发送removeObserver:? 我有点困惑,无法找到确切的答案。 请详细说明这个问题,包括为什么我们需要显式地删除观察者,以及为什么编译器不会在类/应用程序中隐式放置它。