if代码在这段代码中的作用可以解释一下吗?

时间:2017-03-01 06:36:43

标签: ios objective-c

请解释第二个if语句的含义。

我要问的是if的意思([self.delegate textFieldShouldClear:self])< - 这一行

 SEL clearselector = @selector(textFieldShouldClear:);

 if([self.delegate respondsToSelector:clearselector]){
     if([self.delegate textFieldShouldClear:self]){// (Explain This If please)?
         NSLog(@"Delegate Methods");
         self.txtRef.text = @"";
     }
 }

提前致谢。

2 个答案:

答案 0 :(得分:1)

通常此方法返回BOOL值,表示此类已实现或继承提供的委托方法,并通过此BOOLYESNO我们将其调用通知或更新数据。

它通常用于防止崩溃,如果该类未实现该方法将不会使我们的应用程序崩溃。

在您的情况下,您的检查UITextField委托方法是否由该类实现,如果是,则通过委托对象调用该方法。

修改

根据您的问题,更新textFieldShouldClear方法是检查用户是否已覆盖textFieldShouldClear此方法并询问用户textFiled是否应该清除。

Apple来源:

  

询问代表文本字段的当前内容是否应该是   除去。

参考链接: https://developer.apple.com/reference/uikit/uitextfielddelegate/1619594-textfieldshouldclear

希望这有助于理解这种方法。

答案 1 :(得分:0)

只有当包含将执行时,该委托方法才返回true。

{
    NSLog(@"Delegate Methods");
     self.txtRef.text = @"";

}

如果用户不想为某些特定情况清除文本字段,则可能会返回false。