Con Swift 3 y 4 , PI se define ahora como una variable estática en los tipos de números de punto flotante Double, Floaty CGFloat, por lo que no se requieren importaciones específicas de los otros:
Double.pi
Float.pi
CGFloat.pi
También tenga en cuenta que .piel compilador puede inferir el tipo real de . Entonces, en situaciones en las que está claro por el contexto que está utilizando CGFloat, por ejemplo , puede usar .pi(gracias a @Qbyte y @rickster por señalarlo en los comentarios).
Para versiones anteriores de Swift :
M_PIse definió originalmente en Darwinpero también se incluye en Foundationy UIKit, por lo que importar cualquiera de estos le dará el acceso correcto.
import Darwin // or Foundation or UIKit
let pi = M_PI
Nota:
Como se señaló en los comentarios, pi también se puede usar como carácter unicode en Swift, por lo que también podría hacerlo
let π = M_PI
alt + pes el acceso directo (en teclados de EE. UU.) que creará el πcarácter unicode.
var π = M_PIvar.let pi = M_PI¿ Seguro ?.pilugar de la forma larga. Por ejemplolet x = CGFloat(42) * .piimport Darwinno es necesario, todos los M_x son visibles con elimport Foundation(Xcode versión 6.4 (6E35b))
fuente
advertencia: 'M_PI' está en desuso: utilice 'Double.pi' o '.pi' para obtener el valor del tipo correcto y evitar la conversión.
Sorprendentemente, .pi también funciona bien. M_PI está en desuso a partir de Swift 4.2.1, Xcode 10.1, que es la versión actual que estoy usando. SO, use .pi o Double.pi
fuente