Estoy tratando de hacer un método con un formato similar al método setAutoresizingMask: de NSView. Quiero que alguien pueda especificar varios valores que he declarado en mi enumeración (NSHeightSizable | NSWidthSizable), como en el aumento automático de la máscara. ¿Cómo puedo hacer esto?Usando múltiples enumeraciones NSUInteger como un parámetro para un método
6
A
Respuesta
19
En primer lugar, declarar sus banderas en un encabezado:
enum
{
AZApple = (1 << 0),
AZBanana = (1 << 1),
AZClementine = (1 << 2),
AZDurian = (1 << 3)
};
typedef NSUInteger AZFruitFlags;
El (1 << 0)
a través de (1 << 3)
representan simples bits en un número entero que puede enmascarar “ ” dentro y fuera de un entero. Por ejemplo, suponiendo NSUInteger
es de 32-bits, y alguien ha elegido tanto Apple como durian, entonces el número entero se vería así:
0000 0000 0000 0000 0000 0000 0000 1001
| |- Apple bit
|---- Durian bit
Normalmente el método tiene que tomar un argumento entero sin signo:
- (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
}
}
Cuestiones relacionadas
- 1. Cómo almacenar un NSUInteger usando NSCoding?
- 2. Pase un método como parámetro
- 3. Cómo declarar un parámetro de método como cualquier enumeración
- 4. Pasando un parámetro de método usando Task.Factory.StartNew
- 5. Pasar un método como parámetro en Ruby
- 6. Pasar un evento como un parámetro a un método
- 7. Especificación de múltiples interfaces para un parámetro
- 8. cuestión semántica: puntero incompatible a entero conversión enviar 'NSUInteger *' (también conocido como 'unsigned int *') al parámetro de tipo 'NSUInteger'
- 9. Múltiples constructores con un parámetro
- 10. método con el predicado como parámetro
- 11. Usando Java 5 enumeraciones como Velocity variables
- 12. Usando uno mismo. * Como valor predeterminado para un método
- 13. .NET: bool vs enum como un parámetro de método
- 14. aceptar múltiples tipos para un parámetro en scala
- 15. Pase un objeto como parámetro y modifíquelo dentro del método
- 16. ¿Cómo paso un método como parámetro en Python?
- 17. C++, la clase como parámetro a un método, no template
- 18. interfaz como un parámetro de método en Java
- 19. En C# 3.5, ¿cómo pasar qué método para invocar un objeto como un parámetro
- 20. ¿Cómo convertir mejor CString a BSTR para pasarlo como un parámetro "in" en un método COM?
- 21. Fecha de paso como parámetro para un informe de informe interno/otro para usar como parámetro
- 22. ¿Cómo se pasa un Container.DataItem como parámetro?
- 23. VB.NET - Pasar un evento como un parámetro
- 24. ¿Cómo invoca TestNG un método de prueba usando múltiples hilos?
- 25. Pasar un objeto como parámetro a un servicio de Windows
- 26. Aspectos múltiples en un método
- 27. C# pase cualquier método como parámetro
- 28. Moq: Como llegar a un parámetro pasado a un método de un servicio burlado
- 29. Pasando Clase derivada como parámetro de un método cuando el tipo de parámetro es clase base
- 30. realizar: @selector usando un método con parámetros
¡Muchas gracias! Realmente ayudado. –