UIScrollView의 하위 클래스가 있는데,이 클래스는 또한 위임자입니다.touches의 NSSetShouldBegin :의 UIScrollView 중 하나는 NSString입니다.
나는라는 다음 프로토콜 기능이있는 경우 :
- (BOOL)touchesShouldBegin:(NSSet *)touches withEvent:(UIEvent *)event inContentView:(UIView *)view
{
id element;
NSEnumerator *setEnum = [touches objectEnumerator];
while ((element = [setEnum nextObject]) != nil)
{
NSLog(@"element:%@", element);
}
return [super touchesShouldBegin:touches withEvent:event inContentView:view];
}
NSLog이 표시되어있는 유일한 것입니다 :
element:<UITouch: 0x15a9a0> phase: Ended tap count: 3 window: <UIWindow: 0x392390; frame = (0 0; 320 480); layer = <UIWindowLayer: 0x382cd0>> view: <UIButton: 0x3a5e90; frame = (0 0; 106 138); opaque = NO; layer = <CALayer: 0x3a3e90>> location in window: {228, 126} previous location in window: {227, 126} location in view: {89.6667, 77} previous location in view: {88.3333, 77}
문제는, 그것은 큰 것과 NSSet의 내용을 보여줍니다 NSString. objectEnumerator에서 allObjects를 요청하면 NSArray에서 하나의 객체 만 얻습니다. NSLog와 똑같은 객체 (NSString)가 표시됩니다.
누군가 내가 잘못하고 있는지, 아니면 NSSet이 NSString 하나만주고있는 것이 정상적이지 않은지 말해 줄 수 있습니까?
감사합니다.
나는 혼란 스러웠다. 실제로 끈처럼 보였다. UITouch 변수에서 [objectEnumerator nextObject]의 객체를 배치하면 도움이되었습니다! – MiiChiel