내 메서드가 객체를 onTouchEventReceiver으로 설정할 때마다 다른 스레드가 다른 메서드를 호출하면 해당 메서드가 손실됩니다. 화면 터치 후ObjC에서 개체를 설정할 수 없습니까?
2010-07-18 23:40:54.776 app[737:903] setting obj to <appCtl: 0x10fa00>
2010-07-18 23:40:54.787 app[737:903] ====----- <appCtl: 0x10fa00>
...
Got touch event at coordinates 154 x 243 , mask : 2
2010-07-18 23:41:39.342 app[737:3b03] AALayer hit test passed : <AALayer: 0x110af0>
2010-07-18 23:41:39.348 app[737:3b03] firing a selector at (null) by <AALayer: 0x110af0>
왜 그렇게 않습니다
//In header
id onTouchEventReceiver;
SEL onTouchSelector;
- (void) setOnTouchSelector:(SEL)sel withObject:(id)obj
{
NSLog(@"setting obj to %@",obj);
onTouchSelector = sel;
[self setOnTouchEventReceiver:obj];
NSLog(@"====----- %@",onTouchEventReceiver); //That works
}
//Another thread calls this
- (void) touchEventReceived
{
NSLog(@"firing a selector at %@ by %@",onTouchEventReceiver,self);
//Why on earth does that happen?????
if (onTouchEventReceiver != nil) //onTouchEventReceiver is (null)
{
[onTouchEventReceiver performSelector:onTouchSelector];
}
}
코드는이 다음과 같은 생산? 코드가 올바른 것 같습니다.
는 모든 코드가 표시되지 않는 작동하지만이 모든 확신 그
NSLog(@"====----- %@", [self getOnTouchEventReceiver]);
에 같은 인스턴스에서 발생합니까? setOnTouchSelector에서 NSLog'self'를 사용할 수 있습니까? – mvds