write variable print objective objc log imprimir debug consola ios swift nslog

ios - variable - ''NSLog'' no está disponible: la función Variadic no está disponible en swift



xcode print to debug console (2)

Soy nuevo en Swift. Cuando estoy aprendiendo solo lo básico recibí este error en NSLog

Aquí está mi código:

import UIKit class ViewController: UIViewController { var myString: NSString? override func viewDidLoad() { super.viewDidLoad() myString = "himanth" print(myString) NSLog("%@" , myString) // Do any additional ssetup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } }

Si estoy declarando myString así

var myString: NSString!

Está bien usar NSLog y puedo ver la consola también.

Pero declarar una cadena como esta causando problemas

var myString: NSString?

Se refleja en NSLog y muestra error.

¿Cuál es el problema con eso?


Si declara var myString: NSString? como opcional, debe asegurarse de que tenga un valor antes de pasarlo a NSLog .

Así que podrías hacerlo así, luego NSLog("%@" , myString!) . Si myString es nil y lo pones ! el programa se estrellará y obtendrá

fatal error: unexpectedly found nil while unwrapping an Optional value.

Pero si tiene un valor, el programa continuará normalmente e imprimirá

2016-10-03 10:26:25.077 Swift3.0[65214:1579363] Test

Escribí myString = "Test" .


NSLog() no puede imprimir opcionales Swift.

let optional: String? NSLog("%@", optional) // ''NSLog'' is unavailable: Variadic function is unavailable let nonOptional: String NSLog("%@", nonOptional) // Ok! NSLog("%@", optional ?? "value-if-nil") // Ok!

Corrija pasando un valor no opcional a NSLog() lugar.

NOTA:

print() puede imprimir Swift Optionals.