【发布时间】:2013-10-19 06:54:14
【问题描述】:
我对反应性可可相当陌生,我试图在我尝试构建的游戏中加入 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 在块中执行操作?
【问题讨论】:
标签: ios reactive-cocoa