我有一个 UIScrollView 的子类,它也是委托。
当我调用下一个协议函数时:
- (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 是否不正常。
谢谢!