Próbuję utworzyć metodę o podobnym formacie do metody setAutoresizingMask: NSView. Chcę, aby ktoś mógł określić wiele wartości, które zadeklarowałem w moim wyliczeniu (NSHeightSizable | NSWidthSizable), podobnie jak w masce autoreizing. Jak mogę to zrobić?Używanie wielu wyliczeń NSUInteger jako parametru metody
6
A
Odpowiedz
19
Najpierw zadeklarować swoje flagi w nagłówku:
enum
{
AZApple = (1 << 0),
AZBanana = (1 << 1),
AZClementine = (1 << 2),
AZDurian = (1 << 3)
};
typedef NSUInteger AZFruitFlags;
(1 << 0)
aż do (1 << 3)
reprezentują pojedyncze bity liczby całkowitej, które można “ zamaskowania ” iz całkowitej. Na przykład, przyjmując NSUInteger
ma długość 32 bitów, a ktoś wybiera Apple i durian, wtedy liczba całkowita będzie wyglądać następująco:
0000 0000 0000 0000 0000 0000 0000 1001
| |- Apple bit
|---- Durian bit
Zazwyczaj metoda musi przyjąć liczbę całkowitą bez znaku argument:
- (void) doSomethingWithFlags:(AZFruitFlags) flags
{
if (flags & AZApple)
{
// do something with apple
if (flags & AZClementine)
{
// this part only done if Apple AND Clementine chosen
}
}
if ((flags & AZBanana) || (flags & AZDurian))
{
// do something if either Banana or Durian was provided
}
}
Powiązane problemy
- 1. Używanie wyliczeń jako niestandardowych atrybutów XML
- 2. Używanie Joda DateTime jako parametru Jersey?
- 3. Używanie wyliczeń z klasy (C++)
- 4. Przekazywanie metody jako parametru w Ruby
- 5. Przekazywanie metody klasy jako parametru w maszynopisie
- 6. Używanie właściwości jako domyślnej wartości parametru dla metody w tej samej klasie
- 7. Używanie arraycollection jako parametru w zapytaniu do doktryny
- 8. Używanie emitowanego typu jako parametru typu w Reflection.Emit
- 9. Przesyłanie podpisu metody jako parametru szablonu do klasy
- 10. Java: Użycie "this" jako nazwy argumentu/parametru metody instancji?
- 11. Dlaczego możemy użyć "this" jako parametru metody instancji?
- 12. Dlaczego "nie można użyć obiektu jako parametru do metody"?
- 13. Przechodząc obiekt typu anonimowego jako parametru do metody
- 14. Konwertuj NSInteger na NSUInteger?
- 15. Łączenie wyliczeń i używanie gettera w celu zwrócenia określonego wyliczenia
- 16. Wysyłanie boolean jako parametru żądania
- 17. Używanie metody MSDeploy/Web Deploy jako metody publikowania w programie Visual Studio z wieloma użytkownikami
- 18. Używanie socket.io jako api
- 19. Graphql Wiele wyliczeń w zapytaniu
- 20. Używanie metody JList .setModel() z klasą jako argumentem
- 21. Używanie mocno wpisanej metody jako argumentu bez określania parametrów
- 22. Łączenie wyliczeń
- 23. Używanie wielu wiązań Indy Server jako oddzielnych gniazd?
- 24. Dlaczego nie można użyć symbolu wieloznacznego (?) Jako typu parametru, pola, zmiennej lokalnej lub jako metody zwracania metody?
- 25. Przekazywanie parametru jako ostatecznego w C#
- 26. Przekazywanie ogólnej funkcji jako parametru
- 27. C++ Przekazywanie klasy jako parametru
- 28. funkcja PHP jako domyślna parametru
- 29. Przekazywanie funkcji (z parametrami) jako parametru?
- 30. Używanie IOperationBehavior do dostarczenia parametru WCF
Wielkie dzięki! Naprawdę pomógł. –