Qt信号/槽机制在Objective-C上的实现。
Qt信号/槽机制在Objective-C上的实现。
NSObjectSignals/NSObjectSignals.xcodeproj
Embedded Binaries
配置下添加本工程的framework#import <NSObjectSignals/NSObject+SignalsSlots.h>
和Qt下信号槽操作类似,首先为类声明信号
- (NS_SIGNAL)clickView;
再声明,并实现监听此信号的槽函数
// xxx.h
- (NS_SLOT)onClickView;
// xxx.m
- (NS_SLOT)onClickView {
NSLog(@"View clicked;");
}
然后连接信号与槽
[self connectSignal:@selector(clickView) forObserver:observer slot:@selector(onClickView)];
触发信号的方式和Qt有些许差别
[self emitSignal:@selector(clickView) withParams:nil];
dispatch_queue
操作。NS_CLOSE_SIGNAL_WARN()
宏关闭未实现警告