"NSLog" n'est pas disponible: la fonction Variadic n'est pas disponible chez swift
je suis nouveau à swift. quand j'apprends juste les bases j'ai eu cette erreur NSLog
Voici mon code :
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 je déclare myString
comme ceci
var myString: NSString!
C'est bien d'utiliser NSLog
et je peux en mesure de voir la console.
mais déclarer une chaîne de caractères comme celle-ci cause un problème
var myString: NSString?
Il reflète à NSLog
et affichage de l'erreur.
Quel est le problème avec ça?
2 réponses
Si vous déclarez var myString: NSString?
en option, alors vous devez vous assurer qu'il a une valeur avant de vous passer à l' NSLog
.
Si vous pouviez le faire comme ça alors NSLog("%@" , myString!)
. Si myString
est nul, et que vous mettez !
le programme se bloque et vous obtiendrez
fatal error: unexpectedly found nil while unwrapping an Optional value.
mais si elle a une valeur le programme va continuer comme normal et imprimer
2016-10-03 10:26:25.077 Swift3.0[65214:1579363] Test
j'ai écrit myString = "Test"
.
NSLog()
ne peut pas imprimer les options 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!
fixer en passant une valeur non optionnelle à NSLog()
à la place.
NOTE:
print()
imprimer les options Swift.