Re: iOS - Proper way to check UIEvent or UInternalEvent
Re: iOS - Proper way to check UIEvent or UInternalEvent
- Subject: Re: iOS - Proper way to check UIEvent or UInternalEvent
- From: Kyle Sluder <email@hidden>
- Date: Tue, 23 Jun 2015 19:50:26 -0700
> On Jun 23, 2015, at 7:31 PM, Alex Zavatone <email@hidden> wrote:
>
>
> On Jun 23, 2015, at 9:27 PM, Kyle Sluder wrote:
>
>>> On Jun 23, 2015, at 6:10 PM, Alex Zavatone <email@hidden> wrote:
>>>
>>> Actually, the rotate event is the one that is being caught and sent.
>>>
>>> If it's a UIEvent and it's listed as a UIInternalEvent, within the debugger, how do I check the type and subtype to see what type of event it is so that I can return immediately if it is the wrong type?
>>
>> I don’t understand the question. Or rather, I understand the question, but I don’t understand why you are asking it.
>
> Because an exception is thrown in that case and I'd prefer to return before my app quits.
It’s your code that’s throwing the exception, right? Or are you saying that UIKit is throwing an exception if you ask for the .type of a UIEvent that it hands you, if that object just so happens to be an instance of a private subclass?
>
>> There are three public types of event: Touches, Motion, and RemoteControl. Are you saying that UIInternalEvents are re-using one of these constants, and therefore you need an alternative way to disambiguate them? That’s definitely a problem and you should file a Radar.
>
> I'm saying "I want to see which event it is and return if it is a motion event".
Assuming the exception is being thrown by your code, stop doing that and just check the event’s .type. If it isn’t equal to Motion, skip it.
>
>>
>> If you just want to spelunk around the innards of a private UIEvent subclass, then no. We will not provide you information to do so.
>>
>> Barring that, just do if (event.type==UIEventTypeMotion) { } else if (event.type==UIEventTypeTouches) { } …
>
> Yeah, I tried that. The event.type is returning -1 and isn't matching any of the 3 UIEventType enum values. It's not matching on any of them.
There is no guarantee that the event type will be a member of the public enum. Your code needs to be prepared for this case. A future OS might add a new event type. You don’t want your existing, shipping apps to blow up when the user upgrades their OS.
--Kyle Sluder
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden