前言:最近想实现自定弹窗功能,刚好看到自己默默关注的 大佬的文章。于是研究了一下,发现一些问题。
看着他的demo,尝试去自己去实现一遍。
他的btn在类方法初始化里面:
大佬牛逼大佬demo
btn的监听事件引用了,RAC框架(笔者惭愧,没用过...,所以用了很普遍的方法)。
我的实现.png
里面有几个坑:
1.在监听方法里面,最初我使用了
-(void)Clicked:(UIButton *)btn
发现一旦点击btn,程序就崩溃,“找不到方法”,最后想了一下,发现监听的self 代表着当前Class,也就是当前类,而我使用的是对象方法,当然找不到。 所以改回类方法了。(基础啊)
2.类方法里面,不能使用成员变量,而属性是成员变量的api。(当时我想使用全局block回调,然而不行.)
哪怎么回调呢?
方案一:
百度谷歌...,网上兜兜转转,最后还是回到原作者 他可能跟我一样,不想使用RAC回调blcok.(小伙伴可以看他的文章,方案好几种牛逼!!!!)
方案二:
这是另一个大佬指点的方法:
大佬牛逼.png以及方案三:OC新特性
Objective-C 类属性:
@property (class) NSString *someStringProperty;
Objective-C 现在支持类属性了,与OC 中的类属性对应的是Swift的类型属性。可以在类方法中使用类属性,方便实惠.
Block 类属性:
demo.png image.png思路
- 定义全局的类属性block
- 初始化的block,让全局的类属性block指引 self.类属性block = 初始化的block
3:
'+(void)Clicked:(UIButton *)sender{
if (self.buttonClick) {
self.buttonClick(sender);
}
}'
网友评论