NSScreencast Episode #81 Associated Objects
Associated Objects - NSScreencast
addTargetでbuttonTappedメソッドのようなものを書かない実装
- addTarget:self
- @selector(buttonTapped:)
- : for argument
- @selector(setRandomColor)
- @selector(buttonTapped:)
- retain cycle (viewDidLoad)
- __weak ViewController *weakSelf = self;
- __strong ViewController *strongSelf = weakSelf;
- [strongSelf setRandomColor];
- vc -> button -> block -> self (vc)
- UIButton+Blocks
- #import <objc/runtime.h>
- addTargetWithBlock
- objc_setAssociatedObject
- &BlockKey
- OBJC_ASSOCIATION_COPY_NONATOMIC
- objc_setAssociatedObject
- executeBlock
- objc_getAssociatedObject
addTargetの書き方が気に食わないから、別のHackyな書き方しようとしているが
メンテナンスしづらそう