Tag: callback

KVO区分willChangeValueForKey和didChangeValueForKey – 都是必要的吗?

根据苹果自己的build议,当手动设置符合KVC / KVO的访问器时,应该包括两个 KVO方法willChange和didChange 。 这是我在所有手动存取器方法中所做的。 但是, observeValueForKeyPath:ofObject:change:context被调用,每个KVC方法的一半(将和做)具有完全相同的字典内容。 使用选项注册观察者时: NSKeyValueObservingOptionPrior观察者仍然被调用两次 – 每一次调用一次 – 再一次使用相同的字典内容,只保存关键字“notificationIsPrior”包含在字典中的区别。 现在,当KVO被用来改变'CPU昂贵'的属性 – 比如改变颜色或者重新绘制一个庞大而复杂的devise,只有在'didChange'的作用下忽略(或者至less分离出)'willChange ”。 在过去,我通过将密钥string转换为返回左移“1”的枚举列表元素,并使用此数字在接收到第一个调用时以32或64位整数设置标志,以及何时该标志在第二秒重置,我执行CPU密集型操作。 然而,这让我感到这是一个不小的开销,为每个案件执行。 有没有人有任何其他“偏好”的方式来区分“willChange”和“didChange”的callback,而不允许相同的处理两次? 我search了苹果公司自己的文档,这个帮助团队大量地提供替代品,但是苹果公​​司自己的文档并没有涉及到这个主题的很多细节,而且这个团队中的一些人也同样遇到了类似的担忧。 在任何情况下都没有提供明确的解决scheme。 如果有人知道更好的方法 – 除了用交替的标志来避免“willChange” – 我会非常感激。 (为什么苹果公司不能在改变词典中join“阶段”键???)

Swift中的callback函数语法

我试图传递一个函数到另一个函数,然后让传递的函数传递给它一个variables。 这是我的代码: func showStandardPrompt(prompt:String,view: UIViewController,numberInput: Bool, callback: (()->(String))?) { let alert = UIAlertController(title: "Input Data", message: prompt, preferredStyle: .Alert) alert.addTextFieldWithConfigurationHandler { (textField) in if numberInput { textField.keyboardType = .NumberPad } } let OKAction = UIAlertAction(title: "OK", style: .Default) { (action) in let field = alert.textFields![0] as UITextField callback?(field.text!) } alert.addAction(OKAction) let CancelAction = UIAlertAction(title: "Cancel", […]

iOS:ShareKit >> Twitter的设置>>callbackURL – 这是什么?

我试图在我的应用程序中实现ShareKit ; 在SHKConfig.h文件中,在需要Twitter应用程序设置的部分,有一行我应该设置callbackURL : 我已经在Twitter上打开了一个Twitter应用程序,并填充了所有的字段,但我不清楚在callbackURL字段中应该插入哪些数据: 谁能解释一下?

在iOS 7中检测(侦听)audio路由更改

刚开始iOS 7的开发,发现AudioSession相关函数和PropertyListeners在iOS 7中已被弃用。 在使用以下方法检测耳机是否插入或拔出设备之前: /* add callback for device route change */ AudioSessionAddPropertyListener ( kAudioSessionProperty_AudioRouteChange, audioRouteChangeListenerCallback, (__bridge void *)(self)); 然后实现监听器callback,对内部algorithm做不同的事情。 现在iOS 7已经被弃用了,没有任何文件可以替代,这里是否有专家的解决scheme? 谢谢!

iOS Swift:闭包(callback)与代表,何时使用哪个?

就我个人而言,我更喜欢Swift中委托的callback,因为它非常简单易懂。 同时,有些人更喜欢委托,因为委托是其他语言(如C#)中的stream行模式。 我在网上find了一些讨论: 1.“为什么你不应该在Swift中使用代表? https://medium.cobeisfresh.com/why-you-shouldn-t-use-delegates-in-swift-7ef808a7f16b#.hqb7zrc1v 2.苹果正在把重点转移到callback模式上 https://www.reddit.com/r/swift/comments/2ces1q/closures_vs_delegates/ 3.块或代表? http://blog.stablekernel.com/blocks-or-delegates/ 在阅读这些讨论之后,我仍然对这个偏好犹豫不决。 我想知道什么时候最好使用闭包,何时使用代理更好? 和原因? 谢谢!

无法接收来自第二个视图控制器的回叫

我有两个视图控制器。 我试图将数据传递给以前的视图控制器 我在我的第二个视图控制器CEPeoplePickerNavigationController下面的代码 @class CEPeoplePickerNavigationController; @protocol CEPeoplePickerNavigationControllerDelegate <NSObject> – (void)previousViewController:(CEPeoplePickerNavigationController *)controller itemToSend:(NSString *)item; @end @interface CEPeoplePickerNavigationController : UIViewController <UITableViewDelegate,UITableViewDataSource>{ } @property (nonatomic, retain) id < CEPeoplePickerNavigationControllerDelegate> peoplePickerDelegate; @end 当用户点击完成button时,下面的代码将被执行 – (void)doneAction:(id)sender { [self.peoplePickerDelegate previousViewController:self itemToSend:@"From Previous VC"]; [self dismissViewControllerAnimated:YES completion:nil]; } 在我的第一个视图控制器中,我在头文件中有以下接口,并且我在我的第一个视图控制器中实现了先前的视图控制器方法,其中必须接收数据 @interface CallViewViewController : UIViewController<CEPeoplePickerNavigationControllerDelegate> @end 当我从第一个视图控制器移动到第二个视图控制器时,使用下面的代码。 CEPeoplePickerNavigationController *nextVc = [[CEPeoplePickerNavigationController alloc] init]; nextVc.peoplePickerDelegate […]

handleTurnEventForMatch:didBecomeActive:仅在某些时间到达的callback

这是这个问题的后续。 如果您没有收到处理handleTurnEventForMatch:didBecomeActive: 任何callback,请尝试在那里find答案。 在我的游戏中,我只是在一些时间接收转向事件通知。 但是,如果我回到matchMakerViewController并重新加载匹配,状态总是正确的。 我的游戏在每个回合中都会多次上传转弯状态。 有意思的是,如果其他装置收到一个对手回合的通知,则不太可能在相同回合中接收到进一步的通知。 但是,这不是100%。 一般来说,我的互联网连接似乎工作得很好。 任何想法可能是什么原因造成的?

在两个视图控制器之间使用“委托”传递数据:Objective-C

我正在实现一个库(.a),我想从库发送通知计数到应用程序,以便他们可以显示在他们的用户界面,通知计数。 我希望他们实现唯一的方法, -(void)updateCount:(int)count{ NSLog(@"count *d", count); } 我怎样才能从我的图书馆连续发送计数,以便他们可以在updateCount方法中使用它来显示。 我search并了解了callback函数。 我不知道如何实现它们。 有没有其他的方式来做到这一点。

有没有办法将一个ObjectiveC块包装到函数指针?

我必须在iOS应用程序中为特定的C库提供C风格的callback。 callback没有void *userData或类似的东西。 所以我无法在上下文中循环。 我想避免引入全球范围来解决这个问题。 一个理想的解决scheme将是一个Objective-C块。 我的问题:有没有办法将一个块“投”到一个函数指针或包装/掩饰它?

iOS中的多个代理

我正在做一个对象,去下载所有我的视图控制器的东西。 该对象是单例实例,并且一旦下载完成就具有接收数据的callback方法。 它也有一个委托属性,以便它知道下载完成后要回叫哪个对象。 有多个控制器使用这个共享的实例,我的问题是如何callback请求下载的正确的视图控制器。 我的方法是使用委托,但问题是,因为其他视图控制器也是它的委托,下载对象可以回叫每个对象,这将是很难跟踪。