4
对于活性可可,我还是比较新的,我试图在游戏中加入玻璃钢的元素。在我的网上搜索中,Reactive cocoa的资源和文档看起来非常有限,大多数教程都使用相同的示例!使用活性可可观察UITouches?
我想要做的就是让RACSignal为视图上的当前触摸提供一个值流(假设为了简单起见,不需要多点触摸)。然后使用subscribeNext在UITouch对象发生变异时执行我的操作。我无法设置RAC信号本身!
目前Im做以下(其中林不知道是正道!)
@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模型)中使用触摸信号并使用订阅接下来在块中执行操作?
谢谢你一定会试试看。和我假设我可以订阅(使用[[MyViewInstance触摸信号] subscribeNext:....])到我的touchSignal在另一个对象,只要它的MyView公共属性? – Sagar
是的,任何可以访问信号的代码都可以订阅它。 –
试过了。有同样的问题!我得到这个 终止应用程序由于未捕获的异常'NSInvalidArgumentException',原因:' - [MyView rac_signalForSelector:]:无法识别的选择发送到实例0x20874d80'。 我错过了什么? – Sagar