titletextattributes color bar ios objective-c xcode swift

ios - color - Cómo establecer y obtener el valor del puntero Swift



uinavigationitem title color (2)

En Objetive-C cuando quiero establecer / cambiar el valor del puntero. yo suelo

*pointer = value

Pero en Swift, ¿cómo obtener / establecer el valor del puntero?

Estoy trabajando con píxeles de mapa de bits:

NSUInteger offsetPixelCountForInput = ghostOrigin.y * inputWidth + ghostOrigin.x; for (NSUInteger j = 0; j < ghostSize.height; j++) { for (NSUInteger i = 0; i < ghostSize.width; i++) { UInt32 * inputPixel = inputPixels + j * inputWidth + i + offsetPixelCountForInput; UInt32 inputColor = *inputPixel; newR = MAX(0,MIN(255, newR)); newG = MAX(0,MIN(255, newG)); newB = MAX(0,MIN(255, newB)); *inputPixel = RGBAMake(newR, newG, newB, A(inputColor)); } }

Así que quiero convertir este código en Swift, pero estoy atascado con punteros.

23.03.2016 - Actualizar código

var inputPixels:UnsafeMutablePointer<UInt32> = nil inputPixels = UnsafeMutablePointer<UInt32>(calloc(inputHeight * inputWidth, UInt(sizeof(UInt32))))


Deberías usar la propiedad pointee en lugar de la memoria en Swift 3

pointer.pointee = value


Puedes trabajar con punteros en Swift. Hay tipos genéricos UnsafePointer y UnsafeMutablePointer .

Aquí hay una función que toma un puntero float
Puedes usar la variable float y pasar su dirección &floatVar
o puede crear y asignar un UnsafeMutablePointer y pasarlo. Pero tienes que asignar y desasignar manualmente la memoria.

Cuando trabajas con un tipo de puntero UnsafeMutablePointer y quieres asignarle algún valor, debes hacer lo siguiente:

  • verifica si apunta a alguna variable (no nula)
  • Asigne su valor a la propiedad de memory

Ejemplo de código:

func work (p: UnsafeMutablePointer<Float>) { if p != nil { p.memory = 10 } println(p) println(p.memory) } var f: Float = 0.0 var fPointer: UnsafeMutablePointer<Float> = UnsafeMutablePointer.alloc(1) work(&f) work(fPointer) fPointer.dealloc(1)