DEV Community

David Goyes
David Goyes

Posted on

Swift #28: Foundation

Algunas funciones de la biblioteca Foundation

  • pow(_:_:): Calcula la operación de potenciación con una base Double y un exponente Double. Retorna Double.
  • sqrt(_:): Calcula la raíz cuadrada del argumento Double. Retorna Double.
  • log(_:): Calcula el algoritmo natural de un valor Double. Hay otras funciones similares como log2(_:) y log10(_:).
  • sin(_:): Retorna el seno de un valor Double. Hay funciones similares: asin(_:), sinh(_:), asinh(_:).
  • cos(_:): Retorna el coseno de un valor Double. Hay funciones similares: acos(_:), cosh(_:), acosh(_:).
  • tan(_:): Retorna la tangente de un valor Double. Hay funciones similares: atan(_:), tanh(_:), atanh(_:).

NSString

import Foundation

let text0: String = "Hola"
let text1: NSString = NSString(string: text0)
print(text1) // "Hola"
let text2: NSString = text0 as NSString
print(text2) // "Hola"
Enter fullscreen mode Exit fullscreen mode
  • capitalized: Retorna un string con la primera letra de cada palabra en mayúscula.
  • length: Retorna el número de caracteres.
  • localizedStringWithFormat(_:_:): Crea un string a partir del primer argumento y los valores provistos en el segundo argumento variádico. El primer argumento es una plantilla, y el segundo es una lista de valores a incluir separados por comas.
  • contains(_:): Retorna true si el argumento hace parte del string original.
  • localizedStandardContains(_:): Retorna true para indicar que el string del argumento está presente en el string. Se toma en consideración consideraciones de lenguaje ("locale").
  • components(separatedBy:): Divide el string usando el argumento como separador y retorna un arreglo con las partes.
  • replacingOccurrences(of:with:): Retorna un nuevo string reemplazando todas las ocurrencias de of: con with:.
  • trimmingCharacters(in:): Este método elimina los caracteres indicados en in: al principio y al final del string. El argumento más común es whitespaces.
let number = 44
let result1 = String.localizedStringWithFormat("Numero: %d", number)
print(result1) // "Numero: 44"
Enter fullscreen mode Exit fullscreen mode
let pi = 3.14159
let lives = 7
let result2 = String.localizedStringWithFormat("Pi: %.2f", pi)
print(result2) // "Pi: 3.14"
let result3 = String.localizedStringWithFormat("Vidas: %.3d", lives)
print(result3) // "Vidas: 007"
Enter fullscreen mode Exit fullscreen mode

La estructura String funciona con caracteres "Unicode", mientras que NSString usa una codificación de caracteres "UTF-16".

NSNumbers

FormatStyle

let result = (3.14159)
  .formatted(
    .number
    .precision(.fractionLength(2))
  )
print(result) // 3.14
Enter fullscreen mode Exit fullscreen mode

Date

Hay varias clases para crear y procesar fechas: Date, Calendar, DateComponents, DateInterval, Locale y TimeZone.

Date

Calendar

  • Calendar.init(identifier:): Crea un Calendar con el identificador del calendario. Calendar.Identifier puede ser buddhist, chinese, coptic, ethiopicAmeteAlem, ethiopicAmeteMihret, gregorian, hebrew, indian, islamic, islamicCivil, islamicTabular, islamicUmmAlQura, iso8601, japanese, etc.
  • current: Calendario actual del usuario.
  • timeZone
  • dateComponents(_:from:): Extrae los DateComponents indicados por el primer argumento, de la fecha dada en el segundo argumento. Los valores de Calendar.Component pueden ser era, year, yrearForWeekOfYear, quarter, month, weekOfYear, weekOfMonth, weekday, weekdayOrdinal, day, hour, minute, second, y nanosecod.
  • date(from:): Se calcula un Date para los DateComponents usados como argumento. Los componentes no especificados asumirán su valor por defecto.
  • date(byAdding:to:wrappingComponents:): Agrega los componentes a la fecha especificada.
let today = Date(0
let calendar = Calendar.current
let components = calendar.dateComponets([.year], from: today)
print("Estamos en el año \(components.year!)")
// Estamos en el año 2026
Enter fullscreen mode Exit fullscreen mode
let calendar = Calendar.current
var components = DateComponents()
components.year = 2003
components.month = 2
components.day = 1
let birthday = calendar.date(from: components)
// "Feb 1st, 2003, 00:00
Enter fullscreen mode Exit fullscreen mode
let calendar = Calendar(identifier: .gregorian)
var components = DateComponents()
components.day = 120

let today = Date()
let appointment = calendar.date(byAdding: components, to: today)
// Se mueve la fecha 3 meses después
Enter fullscreen mode Exit fullscreen mode

Top comments (0)