判断代理是否实现了协议方法

1 // 3.1 判断代理是否实现了协议方法
2     if ([self.delegate respondsToSelector:@selector(tgFooterViewDidDownloadButtonClick:)]) {
3         [self.delegate tgFooterViewDidDownloadButtonClick:self];
4     }
// 代理如果使用强引用,就会产生循环引用,造成控制器和子视图都无法被释放,造成内存泄露

@property (nonatomic, weak) id <HMTgFooterViewDelegate> delegate;
 1 - (void)tgFooterViewDidDownloadButtonClick:(HMTgFooterView *)footerView
 2 {
 3     // 模拟取网络上获取数据加载数据
 4     NSLog(@"努力加载数据中....");
 5
 6     dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
 7         // 获得网络数据之后执行的操作
 8
 9         // 向数组中添加数据,模拟网络加载完成之后的效果
10         NSDictionary *dict = @{@"title": @"哈哈", @"icon": @"ad_00", @"price": @"100.2", @"buyCount": @"250"};
11         HMTg *tg = [HMTg tgWithDict:dict];
12
13         NSLog(@"加数据前 %lu", (unsigned long)self.tgs.count);
14
15         [self.tgs addObject:tg];
16
17         NSLog(@"加数据后 %lu", (unsigned long)self.tgs.count);
18         // 刷新数据
19         //    [self.tableView reloadData];
20         // 新建一个indexPath
21         NSIndexPath *path = [NSIndexPath indexPathForRow:(self.tgs.count - 1) inSection:0];
22         [self.tableView insertRowsAtIndexPaths:@[path] withRowAnimation:UITableViewRowAnimationMiddle];
23
24         // 通知页脚视图调整视图显示状态
25         [footerView endRefresh];
26     });
27
28 }
时间: 2024-11-06 15:13:07

判断代理是否实现了协议方法的相关文章

判断对象是否遵守某个协议、方法

//判断对象是否遵守某个协议 if([stu conformsToProtocol:@protocol(Study)]) { NSLog(@"Student遵守了Study这个协议"); } //判断对象是否实现某个方法 if([stu respondsToSelector:@selector(test)]) { NSLog(@"Student实现了test这个方法"); }

UI控件之UIPickerView的协议方法

UIPickerView:选择视图,父类是UIView UIPickerView *pickerView=[[UIPickerView alloc]initWithFrame:CGRectMake(10, 100, 300, 50)]; 设置代理,通过代理设置显示样式和内容 pickerView.dataSource=self; pickerView.delegate=self; 当列之间有关联时,要重新设置某列的值的同时进行刷新列,可以全部刷新,也可以刷新某一列 [pickerView rel

在JavaScript中判断整型的N种方法

整数类型(Integer)在JavaScript经常会导致一些奇怪的问题.在ECMAScript的规范中,他们只存在于概念中: 所有的数字都是浮点数,并且整数只是没有一组没有小数的数字. 在这篇博客中,我会解释如何去检查某个值是否为整型. ECMAScript 5 在ES5中有很多方法你可以使用.有时侯,你可能想用自己的方法:一个isInteger(x)的函数,如果是整型返回true,否则返回false. 让我们看看一些例子. 通过余数检查 你可以使用余数运算(%),将一个数字按1求余,看看余数

JavaScript中正则表达式判断匹配规则以及常用的方法

JavaScript中正则表达式判断匹配规则以及常用的方法: 字符串是编程时涉及到的最多的一种数据结构,对字符串进行操作的需求几乎无处不在. 正则表达式是一种用来匹配字符串的强有力的武器.它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它"匹配"了. \d可以匹配一个数字                 '00\d'可以匹配'007' ,'\d\d\d'可以匹配'010' \w可以匹配一个字母或数字      '\w\w'可以匹配'js' \s可

字符串--java中判断字符串是否为数字的方法的几种方法?

ava中判断字符串是否为数字的方法: 1.用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = 0; i < str.length(); i++){ System.out.println(str.charAt(i)); if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 2.用正则表达式 首先要import java.u

Underscore.js 常用类型判断以及一些有用的工具方法

1. 常用类型判断以及一些有用的工具方法 underscore.js 中一些 JavaScript 常用类型检查方法,以及一些工具类的判断方法. 首先我们先来谈一谈数组类型的判断.先贴出我自己封装好的函数. 第一: 在ES5里面有一个检测数组的函数,就是Array.isArray(); (毕竟原生的才是最屌的)但是如果老版本的浏览器不支持ES5呢.那怎么办 所以我们这个时候要想其他的办法.   来回忆下 instanceof 运算符的使用方式.a instanceof b,如果返回 true,表

jquery判断单选按钮radio是否选中的方法

JQuery控制radio选中和不选中方法总结 一.设置选中方法 复制代码代码如下: $("input[name='名字']").get(0).checked=true; $("input[name='名字']").attr('checked','true');$("input[name='名字']:eq(0)").attr("checked",'checked'); $("input[name='radio_nam

2-12python使用any判断一个对象是否为空的方法

这篇文章主要介绍了python使用any判断一个对象是否为空的方法,并给出了改进的方法供大家对比参考,具有一定的借鉴价值,需要的朋友可以参考下 本文实例讲述了python使用any判断一个对象是否为空的方法.分享给大家供大家参考. 具体实现代码如下: >>> eth = {"eth0″:"192.168.1.1″} >>> any(eth) True >>> eth = {} >>> any(eth) False

PHP判断是否有Get参数的方法

PHP如何判断是否有Get参数,方法很简单,一个函数就可以搞定,需要的朋友可以参考下 if(is_array($_GET)&&count($_GET)>0)//判断是否有Get参数 { if(isset($_GET["id"]))//判断所需要的参数是否存在,isset用来检测变量是否设置,返回true or false { $id=$_GET["id"];//存在 } }