Questions tagged «delegates»

代表们可以参考几个概念。一个对象可以依靠另一个(委托)来执行功能。委托还可以使用程序查找规则来调度自调用,从而引用编程语言功能。在C#中,委托定义了触发事件时要调用的方法。



12
使用C#将方法传递为参数
我有几种方法都具有相同的签名(参数和返回值),但是不同的名称和方法的内部原理不同。我想将要运行的方法的名称传递给另一个方法,该方法将调用传入的方法。 public int Method1(string) { ... do something return myInt; } public int Method2(string) { ... do something different return myInt; } public bool RunTheMethod([Method Name passed in here] myMethodName) { ... do stuff int i = myMethodName("My String"); ... do more stuff return true; } public bool Test() { …
694 c#  .net  methods  delegates 

6
如何在“纯” Swift中创建弱协议引用(不带@objc)
weak除非a protocol声明为@objc,否则引用似乎在Swift中不起作用,我不希望在纯Swift应用程序中使用它。 这段代码给出了一个编译错误(weak不能应用于非类类型MyClassDelegate): class MyClass { weak var delegate: MyClassDelegate? } protocol MyClassDelegate { } 我需要给协议加上前缀@objc,然后它才能工作。 问题:什么是完成Swift的“纯” Swift方法weak delegate?


11
取消订阅C#中的匿名方法
是否可以从事件中取消订阅匿名方法? 如果我订阅这样的活动: void MyMethod() { Console.WriteLine("I did it!"); } MyEvent += MyMethod; 我可以这样退订: MyEvent -= MyMethod; 但是,如果我使用匿名方法订阅: MyEvent += delegate(){Console.WriteLine("I did it!");}; 是否可以取消订阅此匿名方法?如果是这样,怎么办?



4
为什么通常给Objective-C委托赋予属性而不是保留?
我正在浏览由史蒂文森(Scott Stevenson)维护的精彩博客,并且我试图理解一个基本的Objective-C概念,即向代表分配“分配”属性与“保留”属性。请注意,在垃圾回收环境中两者都是相同的。我最关心的是基于非GC的环境(例如:iPhone)。 直接来自Scott的博客: “ assign关键字将生成一个设置器,该设置器将值直接分配给实例变量,而不是复制或保留该值。这最适合诸如NSInteger和CGFloat之类的原始类型,或不直接拥有的对象(例如委托)。” 您不直接拥有委​​托对象是什么意思?我通常会保留我的代表,因为如果我不希望他们走入深渊,保留会为我解决。我通常将UITableViewController从其各自的dataSource和委托中分离出来。我也保留该特定对象。我想确保它永远不会消失,所以我的UITableView总是有它的委托。 有人可以进一步解释我错在哪里/为什么错了,以便我能了解在Objective-C 2.0编程中使用委托上的assign属性而不是retain的常见范例吗? 谢谢!

4
视图控制器之间进行通信的最佳方式是什么?
作为对Objective-C,可可和iPhone开发人员的新手,我强烈希望充分利用语言和框架。 我正在使用的资源之一是斯坦福大学的CS193P类笔记,它们已经留在网上了。它包括讲义,作业和示例代码,并且由于该课程是由Apple开发人员提供的,因此我绝对认为它是“从马口算起的”。 课堂网站:http: //www.stanford.edu/class/cs193p/cgi-bin/index.php 第08课与构建基于UINavigationController的应用程序有关,该应用程序将多个UIViewControllers推送到UINavigationController堆栈上。这就是UINavigationController的工作方式。这是合乎逻辑的。但是,幻灯片中有一些关于UIViewController之间进行通信的严厉警告。 我将从这些严肃的幻灯片中引用:http : //cs193p.stanford.edu/downloads/08-NavigationTabBarControllers.pdf 第16/51页: 如何不共享数据 全局变量或单例 这包括您的应用程序委托 直接依赖关系使代码的可重用性降低 而且更难调试和测试 好。我对此感到沮丧。不要盲目地将用于在viewcontroller之间进行通信的所有方法扔到您的应用程序委托中,并在应用程序委托方法中引用viewcontroller实例。公平的诺夫。 再进一步,我们得到这张幻灯片,告诉我们应该做什么。 第18/51页: 数据流最佳实践 弄清楚究竟需要传达什么 为您的视图控制器定义输入参数 为了在层次结构之间进行通讯,请使用松散耦合 为观察者定义通用接口(例如委派) 然后,在此幻灯片之后是看似占位符的幻灯片,在该幻灯片中,讲师显然使用UIImagePickerController的示例演示了最佳实践。我希望这些视频可用!:( 好的,所以...我怕我的objc-fu不太牢固。我也对上面引用的最后一行感到困惑。我一直在尽职调查这个问题,发现似乎是一篇体面的文章,在谈论观察/通知技术的各种方法:http : //cocoawithlove.com/2008/06/five-approaches-to -listening-observing.html 方法5甚至将委托表示为方法!除了...对象只能一次设置一个委托。因此,当我有多个ViewController通讯时,我该怎么办? 好的,那是设置帮派。我知道我可以通过引用appdelegate中的多个viewcontroller实例轻松地在应用程序委托中执行通信方法,但是我想以正确的方式进行此类操作。 请回答以下问题,以帮助我“做正确的事”: 当我尝试在UINavigationController堆栈上推送新的viewcontroller时,谁应该执行此推送。 我的代码中哪个类/文件是正确的位置? 当我想影响一些数据块(伊娃的值),我UIViewControllers之一,当我在不同的UIViewController,什么是“正确”的方式做到这一点? 假设我们一次只能在一个对象中设置一个委托,那么当讲师说“为观察者定义通用接口(如委托)”时,实现将是什么样子。如果可能的话,一个伪代码示例将非常有帮助。

13
什么是代表?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 我很困惑代表的实际角色是什么? 我在面试中多次被问到这个问题,但我认为面试官对我的回答不满意。 有人可以用一个实例告诉我最好的定义吗?
152 oop  delegates 


11
Java中的函数指针
这可能是常见且琐碎的事情,但我似乎很难找到具体答案。在C#中,有一个委托的概念,它与C ++中的函数指针紧密相关。Java中是否有类似的功能?鉴于缺少指针,最好的方法是什么?需要明确的是,我们在这里谈论头等舱。

6
什么是C ++委托?
C ++中委托的一般想法是什么?它们是什么?它们的用途是什么? 我想首先以“黑匣子”的方式来了解它们,但是对这些东西的勇气有一点了解也是非常有用的。 这并不是最纯净或最纯净的C ++,但我注意到我工作的代码库中有大量的C ++。我希望对它们有足够的了解,因此我可以使用它们,而不必深入研究嵌套模板的可怕问题。 这两篇代码项目文章解释了我的意思,但并没有特别简洁: 成员函数指针和最快的C ++委托 不可能的快速C ++代表

10
如何清除C#中的事件订阅?
采取以下C#类: c1 { event EventHandler someEvent; } 如果有很多订阅c1的someEvent活动,而我想全部清除,那么实现此目的的最佳方法是什么?还请注意,此事件的订阅可能是lambdas /匿名代表。 目前,我的解决方案是向该ResetSubscriptions()方法添加一个c1设置someEvent为null的方法。我不知道这是否会带来看不见的后果。
141 c#  .net  events  delegates 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.