2 Stimmen

Verstehen der Objective c enum Deklaration

Vom iPhone UIControl

UIControlEventAllTouchEvents      = 0x00000FFF,
UIControlEventAllEditingEvents    = 0x000F0000,
UIControlEventApplicationReserved = 0x0F000000,
UIControlEventSystemReserved      = 0xF0000000,
UIControlEventAllEvents           = 0xFFFFFFFF

Nun nehme ich an, dass die UIControlEventApplication der "Bereich" ist, den ich verwenden kann, um benutzerdefinierte Steuerereignisse anzugeben, aber ich habe keine Ahnung, wie man es richtig macht. Nur wenn ich 0xF0000000 zuweise, wird das Steuerereignis korrekt ausgelöst. Wenn ich etwas anderes zuweisen (0xF0000001) das Steuerelement-Ereignis feuert, wenn es nicht soll.

Einige Klarstellungen:

enum {
    UIBPMPickerControlEventBeginUpdate = 0x0F000000,
    UIBPMPickerControlEventEndUpdate = // Which value do I use here?

};

Meine Annahme, dass es sich um einen Bereich handelt, beruht auf den Unterlagen. Die besagen:

Ich nehme dies an, weil die Dokumente dies sagen: Eine Reihe von Kontroll-Ereignis-Werten, die für die Anwendung zur Verfügung stehen.

Kann mir jemand helfen, die Art der Enum-Deklaration zu verstehen, die in UIControl verwendet wird?

13voto

monowerker Punkte 2879

Ich würde denken, dass 0x0F000000 die 4 Bits sind, die Ihnen zur Verfügung stehen, um Ihre eigenen Steuerereignisse zu erstellen.

0x0F000000 = 00001111 00000000 00000000 00000000

Also jede Kombination von:

0x00000001<<27 = 00001000 00000000 00000000 00000000
0x00000001<<26 = 00000100 00000000 00000000 00000000
0x00000001<<25 = 00000010 00000000 00000000 00000000
0x00000001<<24 = 00000001 00000000 00000000 00000000

Sie können diese natürlich miteinander verknüpfen und neue erstellen:

0x00000001<<24 | 0x00000001<<25 = 00000011 00000000 00000000 00000000

In Ihrem Beispiel also:

enum {
    UIBPMPickerControlEventBeginUpdate = 0x00000001<<24,
    UIBPMPickerControlEventEndUpdate = 0x00000001<<25, ...
};

-1voto

Corey Floyd Punkte 25849

Um die Enums zu verwenden, führen Sie einfach bitweise Operationen durch:

UIControlEventAllEditingEvents | UIControlEventApplicationReserved | UIControlEventApplicationReserved

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X