问题标签 [addobserver]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - 来自 addObserver:selector:name:object 的 IOS 选择器不在视图控制器中执行
上下文我们正在开发一个可以使用 opencv 的 ios 应用程序,并且必须将我们更改viewcontrollers
为 .mm
.mm 中的 opencv 相关函数不会执行涉及 ui 更改的代码。
GazeTracker
是一个NSObject
告诉用户凝视状态的,它工作正常
我们考虑过使用观察者,以便在viewController
调用的 stateChanged 中使用选择器,该选择器将在状态gazeTracker
更改时执行。
" stateChanged
" 永远不会被调用。我们最初认为它只是gazeTracker
,所以我们将它替换为“ self
”(意思是viewController
),但它仍然无法正常工作。我们对“ observer
”的理解是,当对象中的值发生变化时,selector
就会调用 。但是我们不知道“ object
”中“ addObserver:selector:name:object
”的目的。
ios - 观察财产的性质
我正在尝试观察我的 AppDelegate 的属性以更新表格视图。这有点复杂,所以这是我的一些代码。
每当更新数组时,我都想更新 UITableView 的内容。我觉得有一种更有效的方法可以做到这一点,但似乎无法弄清楚。我已经在线阅读了 Apple 的文档,有点困惑。提前谢谢!!:)
iphone - 如何删除观察者
我有一个启用 ARC 的项目
viewDidLoad中添加的观察者很少
我想删除所有观察者,所以我在viewDidUnload中添加了以下行
现在我的问题是,这是否会删除所有观察者?
如果没有怎么办?
更新
如果我想删除一个观察者怎么办?
你能帮我吗。
ios - NSNotification - 在发布通知之前检查是否添加了观察者
我的代码在以下位置崩溃:
我的假设是我在添加观察者之前发布通知。
有没有办法在发布通知之前检查活跃观察者的名单?
objective-c - addObserver:forKeyPath 正在使应用程序崩溃,KVO,目标 c
我通过使用类别来做视差效果:
详情如下 UIScrollView+Parallax.h
UIScrollView+视差.m
我正在通过执行向表格添加视差
但是,[self addObserver:forKeyPath:options:context:nil]
在没有任何线索的情况下不断使应用程序崩溃。如果我将此行注释掉并且应用程序没有崩溃但平行效果不起作用。
对此问题的任何想法。请帮忙。谢谢
ios - NSNotificationCenter addObserver 被忽略
NSNotifications
在使用 XCode 5.1(和 CorePlot 1.4)之前,两个对象工作得很好。但是,使用 XCode 5.1.1 (Coreplot 1.5) 我发现如果addObserver
调用在init
方法内部,它实际上不会被注册(仅对于这两个类,它在不同类的父对象中工作)。我什NSLog
至在通话之前和之后都放了一个,以确保代码仍然有效。这两个对象都被它们的共享父级强烈引用,并且它们的父级会毫无问题地收到必要的通知。而且,我有一个NSLog
在dealloc
哪里removeObserver
- 它没有提前调用,因为对象被正确保留。
同样,自从我上次使用 XCode 5.1(和 CorePlot 1.4)编译它以来,发送通知的对象或这两个类的代码没有任何改变。init
并且在父级中使用了相同的调用,并且效果很好。昨晚我唯一的解决方案是将addObserver
调用重构为一个新方法,并在init
.
但是,我不明白为什么这是必要的。谁能想到一个addObserver
放在中间的原因init
会被“忽略”,但是当在另一个由 调用的方法中时init
,它会起作用吗?
编辑和注释:
我添加了更多代码来显示初始化。我还添加了注释,它是 CorePlot 的图形视图,CorePlot 最近也更新到 1.5(我忘了)——这可能是问题的根源。
Lead_the_zeppelin 建议重新分配它似乎是可能的。但是,从 NSNotificationCenter 到 -now-dealloc'd 对象的调用不会使程序崩溃(注意,不调用 dealloc - 我有一个NSLog
)?init
我可以通过在, 和之后打印对象实例字符串来轻松测试这一点。我昨晚确实对此进行了测试,要求提供实例,但我认为我没有将那部分复制到init
.
ios - 键值观察不工作IOS
您好我正在开发 IOS 应用程序,我在其中使用带有键值对的添加观察者。但它不起作用。我做了以下事情:
但它没有调用上述方法。如果我forKeyPath
改为contentOffset
那么它工作正常。但我想改变那个值。难道我做错了什么?需要帮忙。谢谢你。
ios - 即使看起来与 addObserver 平衡,removeObserver 也会使我的应用程序崩溃
所以我有一个类,CustomCell : UITableViewCell
有一个addObserver:forKeyPath:options:context:
方法,称为 in -awakeFromNib
,和一个removeObserver:forKeyPath:context:
方法,称为 in -dealloc
。
CustomCell.m
在使用这些单元格加载视图后,我得到以下日志,然后再次退出(触发 dealloc)
我已经仔细检查(ctrl+f),这些方法在其他任何地方都没有被调用。因此,对于任何情况,似乎都有一个addObserver
(具有独特的上下文)和一个removeObserver
(具有该上下文)
ios - addobserver 获取键值的问题
因为我是使用观察者模式的新手。我的应用程序在 iOS7 和更低版本上运行良好。
我使用 XCode 6 将我的应用程序升级到 iOS8。当我第一次在 XCode 6 中打开我的应用程序并运行它时,没有显示任何错误消息,我的应用程序崩溃了。
我尝试应用调试器和异常断点。
我发现我的应用程序addObserver:
在行代码处崩溃。我正在做的是:
- 我的应用程序首先打开登录屏幕,
- 用户必须输入用户名和密码。
- 如果它的新用户然后登录,用户名和密码将保存到数据库中。
- 内部用户可以选择更新他的密码并保存在数据库中。
现在当用户第二次登录时,我的观察者没有发现密码的变化。
同一行代码在较低版本上运行良好。我做错了什么?我的代码:
macos - 不能同时设置 addObserver 方法的名称和对象参数
使用此代码
我无法收到我想要的通知。
但是,如果我将名称或对象更改为 nil,它就可以工作。我想知道这两个参数是否不能同时设置为非零?</p>