¿Qué significa ^ en cios objectives?

Perdón por hacer una pregunta tan simple pero estas cosas son difíciles para Google.

Tengo código en iOS que está conectado para alternar, que está cambiando entre Celsius y Fahrenheit y no sé lo que significa ^ 1. self.celsius es boolean

Gracias

self.celsius = self.celsius ^ 1; 

Es un operador de lenguaje C que significa "Bitwise Exclusive OR".

Wikipedia ofrece una buena explicación:

XOR

Un XOR bit a bit toma dos patrones de bits de igual longitud y realiza la operación OR exclusiva lógica en cada par de bits correspondientes. El resultado en cada position es 1 si solo el primer bit es 1 o solo el segundo bit es 1, pero será 0 si ambos son 0 o ambos son 1. En esto, realizamos la comparación de dos bits, siendo 1 si los dos Los bits son diferentes y 0 si son iguales. Por ejemplo:

  0101 (decimal 5) XOR 0011 (decimal 3) = 0110 (decimal 6) 

El XOR bit a bit puede usarse para invertir los bits seleccionados en un logging (también llamado toggle o flip). Cualquier bit puede ser conmutado por XOR con 1. Por ejemplo, dado el patrón de bits 0010 (decimal 2), los bits segundo y cuarto pueden alternar con un XOR bit a bit con un patrón de bit que contiene 1 en las posiciones segunda y cuarta:

  0010 (decimal 2) XOR 1010 (decimal 10) = 1000 (decimal 8) 

Es el operador bitco XOR (ver http://www.techotopia.com/index.php/Objective-C_Operators_and_Expressions#Bitwise_XOR ).

Lo que está haciendo en este caso es cambiar hacia adelante y hacia atrás, porque 0 ^ 1 es 1 y 1 ^ 1 es 0.

Es una operación OR exclusiva.