草庐IT

Delegates

全部标签

iphone - 如何检查是否设置了自定义委托(delegate)?

我在RandomClass.m和RandomClass.h中实现了自定义委托(delegate)RandomClassDelegate。现在我需要实现委托(delegate)变量,并让它调用协议(protocol)中的方法,如下所示:[self.delegaterandomClassDelegateMethod];显然,如果从未设置delegate,这将导致程序崩溃并导致运行时错误。显而易见的解决方案是:if(delegate){[self.delegaterandomClassDelegateMethod];}但我想知道这是否是正确的模式,或者是否有更好的方法来做到这一点,可能在协议

ios - 什么时候使用像 (id<UISearchBarDelegate>)self 这样的东西?

我在我正在使用的代码的某些区域看到了这一点。searchBar.delegate=(id)self;我的问题是...为什么不让当前类成为UISearchBar的委托(delegate)呢?通过添加在类的界面中?是否存在上述代码比让类成为委托(delegate)更好的情况?这两种方式都适合我,但我想了解为什么我可能想要使用其中一种。 最佳答案 强制转换方法可以被认为是作弊。如果委托(delegate)类不想公开声明协议(protocol)一致性(但为什么它被公开设置为委托(delegate)),则会使用它。或者如果委托(delegat

iphone - iOS:通知其他选项卡式 View Controller 有关其数据集的更改

我有一个标签栏Controller,里面有两个Controller:一个mapviewController和一个tableview+NSFetcheddataController。两者都显示核心数据中有关特定日期的信息,并有一个按钮以模态方式显示日期选择器。我已经实现了当它们的模态视图Controller通过委托(delegate)消失时我的Controller数据集发生变化,但我希望这两个Controller更新它们的数据,而不仅仅是显示模态Controller的Controller。我考虑过在两个Controller中创建一个协议(protocol)并将彼此设置为它的委托(dele

android - 具有 Room 持久性库的 Kotlin 委托(delegate)

我目前正在使用Kotlin开发一个新的Android应用程序。我尝试实现Room来存储数据,但我没有让它与Kotlin委托(delegate)一起工作。我创建了一个Identifier委托(delegate),以确保id在初始化后不会更改。委托(delegate)看起来像这样:classIdentifier:ReadWriteProperty{privatevarcurrentValue=-1LoverridefungetValue(thisRef:Any?,property:KProperty):Long{if(currentValue==-1L)throwIllegalStateE

Android:在 webview 滚动完成后使按钮可见

我有一个显示html文件的webview。当用户在webview中滚动到这个文件的底部时,我想要一个以前隐藏的按钮显示出来,然后用户可以按下它来做一些Activity我在iOS中做了类似的事情,我只是将委托(delegate)设置为ViewController并将按钮设置为可见。我如何在Android上做类似的事情?我注意到没有像iOS中那样的回调方法。编辑:现在,我有一个包含2个对象的Activity:一个包含我的文本的WebView和一个当前不可见的按钮。我希望我的Activity在webview文本滚动到底部时收到一条消息,并使按钮可见 最佳答案

【C#基础】什么是委托(Delegates)?它在游戏中有什么应用?

WhatareDelegates?IntroDelegate是一种类型,可以使用委托(delegate)来实现模块化的编程。通常用于表示对一个或多个方法的引用。Delegate可以将方法作为参数传递给其他方法,也可以将方法存储在变量中以便稍后调用。Delegate通常用于实现回调函数、事件处理程序和插件架构。Delegate的用途如下:回调函数:在某些情况下,我们需要让某个方法在另一个方法执行完毕后自动调用。这时就可以使用Delegate来实现回调函数。在调用的方法中将Delegate作为参数传递,执行完后调用Delegate所引用的方法。事件处理程序:在C#中,事件是一种特殊的Delegat

c# - 如何将委托(delegate)或函数指针从 C# 传递到 C++ 并使用 InternalCall 调用它

我在C#中有以下设置:publicdelegatevoidCallbackDelegate(stringmessage);[MethodImplAttribute(MethodImplOptions.InternalCall)]publicstaticexternvoidsetCallback(CallbackDelegateaCallback);publicvoidtestCallbacks(){System.Console.Write("RegisteringC#callback...\n");setCallback(callback01);}publicvoidcallback0

c++ - C++11 中的委托(delegate)

C++11是否提供委托(delegate)?如果不是,那么在C++中执行类似操作的最佳(最有效)方法是什么?升压信号?快速委托(delegate)?还有别的吗? 最佳答案 您可以使用bind将成员函数绑定(bind)到类实例,从而获得类似委托(delegate)的语义:#includestructC{voidFoo(int){}};voidBar(std::functionfunc){func(42);//callsobj.Foo(42)}intmain(){usingnamespacestd::placeholders;Cobj;

objective-c - 单独类中的 UIAlertViewDelegate 会使应用程序崩溃

我在ViewController以外的类中遇到了UIAlertView委托(delegate)的问题。一切正常,直到用户单击OK按钮-然后应用程序崩溃并显示Thread1:EXC_BAD_ACCESS(code=2,address0x8)ViewController.h:#import#import"DataModel.h"@interfaceViewController:UIViewController@endViewController.m:#import"ViewController.h"@interfaceViewController()@end@implementationV

iphone - 在 Objective C 中调用另一个类的方法

我有2个类(class),比如A类和B类。B类是在A类中创建的。我在A类中有一个方法,需要在A类和B类中都执行,调用A类本身的方法就可以了。但是我不确定在B类中调用该方法。我试过将方法声明为静态方法,但由于我不能在静态方法中使用实例变量,我认为使用委托(delegate)是个好主意。由于我来自C#背景,我不确定是否在ObjectiveC中使用它。从概念上讲,我已经在C#中实现了我需要的东西,如下所示。只是想知道它在ObjectiveC中的等价物是什么。classA{publicA(){Bmyclass=newB(()=>calculate());}publicvoidcalculate