jjzjj

Observer

全部标签

swift - Firebase Observer 中存储内容的生命周期

您好,我很难在Firebaseblock中获取数组的值我的代码涉及计算出订购的多种食品的数量(requestFoodItemArray[i])并将它们附加到一个数组(requestFoodNumberArray)。我能够让它成功运行,但是当我尝试在除observe()block之外的其他任何地方访问它时,存储在requestFoodNumberArray中的值将消失。如何“延长”存储在该特定阵列中的数据的生命周期?谢谢!overridefuncviewDidLoad(){super.viewDidLoad()populateCharts(completion:{requestNumbe

协议(protocol) : operator '===' cannot be applied to operands of type '_' and 'Self.T' 中的 Swift 泛型

我正在尝试使用Swift2构建一个简单的观察者混合。这里只是相关部分。protocolObservable{typealiasTvarobservers:[T]{getset}mutatingfuncremoveObserver(observer:T)}为了创建混入,我使用了一个扩展:extensionObservable{mutatingfuncremoveObserver(observer:T){letindex=self.observers.indexOf{$0===observer}iflet_=index{self.observers.removeAtIndex(index)

ios - 如何使用 swift 仅在已知持续时间内流式传输音频

我正在使用AVPlayer(我不需要,但我想流式传输并尽快开始播放)来播放m4a文件(它是iTunes音频预览)。只有我只希望它播放该文件的一部分。我可以设置开始时间,但不能设置结束时间。使用计时器不起作用,因为我将URL用作http地址。我在加载时播放,没有下载文件。我还在Objective-C中看到了使用KVO来知道音乐何时开始播放的解决方案,但我认为这不是最好的方法,因为我使用的是swift,而且可能会出现故障,因此歌曲不会播放适时停止。 最佳答案 您可以添加addBoundaryTimeObserverForTimes到您的

ios - NSNotification Observer Closure 在 Observer 被移除时没有被移除?

我在ViewController中有以下代码来注册我的自定义通知之一。到目前为止,我一直使用选择器进行注册,但我想我会尝试使用闭包,但发现有些奇怪。NSNotificationCenter.defaultCenter().addObserver(self,selector:"notificationReceived:",name:"NotificationKey",object:nil)NSNotificationCenter.defaultCenter().addObserverForName("NotificationKey",object:nil,queue:nil){[weak

swift - Property Observer swift 了解属性(property)的属性(property)

标题有点乱,但已经说明了一切。我想在一个属性的属性上有一个属性观察器:classA{varb:Binit(){b=B()}funcfoo(){}}classB{varc=0funbar(){}}vara=A()在这个例子中,为了说明我想要什么,我希望在设置a.b.c时调用a.foo()。如果我想改为调用a.b.bar(),这可以通过更改轻松完成varc=0到varc=0{didSet{bar()}}但是,我想做的事情没有简单的方法可以实现。这是我能想到的唯一可以按照我的意愿行事的方法:classA{varb:B{didSet{b.a=self}}init(){b=B()b.a=self

swift - 用 RxSwift 实现去抖缓冲区,这对吗?

我对RxSwift比较陌生,但我期待在我的项目中更多地使用它,我很想听听对我刚刚编写的运算符的一些反馈。我缺少的功能是去jitterbuffer:一个行为与debounce运算符完全相同的缓冲区,但不是仅发出最新值,它应该发出自上次发出以来收集的所有值。在RxJava中,这很容易通过使用带有另一个可观察对象的缓冲区作为“关闭选择器”来实现://From:https://github.com/ReactiveX/RxJava/wiki/Backpressure////wehavetomulticasttheoriginalburstyObservablesowecanuseit//bot

ios - 如何在 swift 中使用 Key Value Observer?

为了我的目的,我设置了AVFoundation来拍照,我想确保在保存imagedata之前完成曝光和白平衡(adjustingExposure,adjustingWhiteBalance)的调整。否则第一张照片会显得很暗。如何设置键值观察器以在值更改后运行代码?以及如何/在哪里是启动它的最佳地点? 最佳答案 在你得到图像后用didSet创建一个var并且那个var保存图像例如varimage:UIImage{//orwhattypeyourimageis,MabyNSData,butI'mnotsuredidSet{//adjust

swift - 信号 : Collect values over time interval

这可能是一个微不足道的问题,但我无法为这个看似简单的任务找到解决方案。由于我是ReactiveSwift和响应式编程的新手,所以我可能会错过一些明显的东西。基本上我想做的是这样的:signal.collect(timeInterval:.seconds(5))我想从信号中收集特定时间段内的所有值。生成的信号将每x秒产生一个事件,其中包含从第一个信号收集的事件数组。在ReactiveSwift中执行此操作的最佳方法是什么? 最佳答案 ReactiveSwift中没有用于此任务的内置运算符。相反,您可以使用以下方法编写扩展:import

swift - Swift 中的观察者模式

我想实现一个观察者模式,但我没有在Swift(也是2.0)中找到合适的编程语言结构。主要问题是:protocol和extension不允许存储属性。在类中我们可以添加存储的属性,但我们不能强制子类覆盖它的一些继承方法。这就是我想要的:{class|protocol|extension|whathaveyou}Sensor{varobservers=Array()//Thisisnotpossibleinprotocolandextensions//ThefollowingisdoesnotworkinclassesfuncswitchOn()funcswitchOff()varisRu

ios - 由于未捕获的异常 'NSRangeException' 而终止应用程序,原因 : 'Cannot remove an observer - ios

我正在使用swift开发ios应用程序。我正在使用xcode7.0.1。与TableViewController。我想在单击行时展开并在再次单击时折叠。我正在按照gitHub中的教程进行操作.现在我面临错误Terminatingappduetouncaughtexception'NSRangeException',reason:'Cannotremoveanobserverforthekeypath"frame"frombecauseitisnotregisteredasanobserver.'我希望以下代码行会导致问题。我的UITableViewCell类代码:funccheckHe