我对反应性可可相当陌生,我试图在我正在尝试构建的游戏中加入 FRP 元素。从我的在线搜索来看,Reactive cocoa 的资源和文档似乎非常有限,并且大多数教程都使用相同的示例!
我想要做的是,拥有一个 RACSignal,它为视图上的当前触摸提供一个值流(为简单起见,假设没有多点触摸)。然后使用 subscribeNext 在 UITouch 对象发生变异时执行我的操作。我无法设置 RAC 信号本身!
目前我正在做以下事情(我不确定这是正确的方法!)
@interface MyView:UIView{
UITouch *currentTouch;
RACSignal *touchSignal;
}
@property(nonatomic , assign)UITouch *currentTouch;
@implementation MyView
@synthesize currentTouch;
-(id)init{
if(self = [super init]){
}
return self;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
NSArray *touchArray = [touches allObjects];
for(UITouch *touch in toucheArray){
currentTouch = touch;
if(!touchSignal){
touchSignal = [RACObserve(self , currentTouch) distinctUntilChanged];
}
}
}
但是每次我 RACSignal 尝试初始化游戏崩溃时,我都会得到以下信息:
[MyView rac_valuesForKeyPath:observer:]: unrecognized selector sent to instance 0x2084cf90
我究竟做错了什么?设置 RACSignal 的正确方法是什么?另外,我如何在不同的对象(可能是 MyView 模型)中使用 touchSignal 并使用 subscribe next 在块中执行操作?