本帖最后由 为梦想挺身而出 于 2014-6-20 18:39 编辑
- @class Button;
- typedef void (^MyButton)(Button *);
- @interface Button : NSObject
- @property (nonatomic, assign) MyButton btn;
- - (void)click;
- @end
- #import "Button.h"
- @implementation Button
- - (void)click
- {
- _btn(self);
- _btn(_btn);
-
- }
- @end
- #import <Foundation/Foundation.h>
- #import "Button.h"
- int main(int argc, const char * argv[])
- {
- @autoreleasepool {
- Button *b = [[[Button alloc] init] autorelease];
-
-
-
-
- b.btn = ^(Button *btn){
-
- NSLog(@"点了这个-%@按钮", btn);
- };
-
- [b click];
-
-
- }
- return 0;
- }
- 这里的click中调用的两个block 输出结果为:
- 2014-06-19 19:39:27.913 block作为代理回调[1242:303] 点了这个-<Button: 0x1001144f0>按钮
- 2014-06-19 19:39:27.917 block作为代理回调[1242:303] 点了这个-<__NSGlobalBlock__: 0x1000035b0>按钮
- 想不通 _btn(self);和_btn(_btn);的区别,求大神解答
复制代码 |