iphone中类的块委托方法

iphone中类的块委托方法,iphone,uitextfield,uitextfielddelegate,Iphone,Uitextfield,Uitextfielddelegate,我遇到了一个问题,我正在处理一个类,它是UITextField的子类。 这将在以后的许多课程中使用。 但我不想让用户以任何方式使用它的委托方法 有什么方法可以做到这一点吗?重写-setDelegate:方法,这样它就不会实际设置委托。您可以只提供一个无法调用super的空方法: -(void) setDelegate:(id<UITextFieldDelegate>) delegate { // this method intentionally empty to preve

我遇到了一个问题,我正在处理一个类,它是UITextField的子类。 这将在以后的许多课程中使用。 但我不想让用户以任何方式使用它的委托方法


有什么方法可以做到这一点吗?

重写
-setDelegate:
方法,这样它就不会实际设置委托。您可以只提供一个无法调用
super
的空方法:

-(void) setDelegate:(id<UITextFieldDelegate>) delegate
{
    // this method intentionally empty to prevent a delegate from ever being set
}
-(void)setDelegate:(id)delegate
{
//此方法故意为空,以防止设置委托
}

重写
-setDelegate:
方法,使其永远不会实际设置委托。您可以只提供一个无法调用
super
的空方法:

-(void) setDelegate:(id<UITextFieldDelegate>) delegate
{
    // this method intentionally empty to prevent a delegate from ever being set
}
-(void)setDelegate:(id)delegate
{
//此方法故意为空,以防止设置委托
}

重写
setDelegate:
,以便它抛出异常或记录有关如何操作的指令。这样您的API用户将知道实际发生了什么

-(void) setDelegate: (id <UITextFieldDelegate>) delegate
{
    NSLog(@"*** Use the blocks API instead of calling %s", __PRETTY_FUNCTION__);
    [self doesNotRecognizeSelector: _cmd];
}
-(void)setDelegate:(id)delegate
{
NSLog(@“***使用块API而不是调用%s”,函数);

[自我识别选择器:_cmd]; }
重写
setDelegate:
,以便它抛出异常或记录有关如何操作的指令。这样您的API用户将知道实际发生了什么

-(void) setDelegate: (id <UITextFieldDelegate>) delegate
{
    NSLog(@"*** Use the blocks API instead of calling %s", __PRETTY_FUNCTION__);
    [self doesNotRecognizeSelector: _cmd];
}
-(void)setDelegate:(id)delegate
{
NSLog(@“***使用块API而不是调用%s”,函数);

[自我识别选择器:_cmd]; }
程序员使用委托!用户对它没有任何线索、使用或控制。我想你的意思是完全传达其他信息。程序员使用委托!用户对它没有任何线索、使用或控制。我想你的意思是完全传达其他的东西。[自我意识不到选择器:_cmd];这会使应用程序崩溃。您的意思是根本不允许用户调用此方法吗?+1是的,它确实有效,但您能否回答我的问题(在注释中)all
doesNotRecognizeSelector:
does是引发异常的。关键是防止API客户端调用
setDelegate:
。这是一种激进的方法,所以你可能不需要它。我把它作为一个可以做什么的例子。如果您认为这太烦人/破坏性了,您只需
NSLog()
一条消息,然后返回,而无需调用
super
[self-doesNotRecognizeSelector:\u cmd];这会使应用程序崩溃。您的意思是根本不允许用户调用此方法吗?+1是的,它确实有效,但您能否回答我的问题(在注释中)all
doesNotRecognizeSelector:
does是引发异常的。关键是防止API客户端调用
setDelegate:
。这是一种激进的方法,所以你可能不需要它。我把它作为一个可以做什么的例子。如果您认为这太烦人/破坏性了,您只需
NSLog()
一条消息,然后返回,而无需调用
super