我是新手.当我正在学习基础知识时,我得到了这个错误NSLog
这是我的代码:
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.
}
}
Run Code Online (Sandbox Code Playgroud)
如果我这样宣布的myString话
var myString: NSString!
Run Code Online (Sandbox Code Playgroud)
它很好用NSLog,我也可以看到控制台.
但是声明这样的字符串会导致问题
var myString: NSString?
Run Code Online (Sandbox Code Playgroud)
它反映NSLog并显示错误.
有什么问题?
Ras*_*n L 20
如果您声明var myString: NSString?为可选,那么在将其传递给之前,您需要确保它具有值NSLog.
所以你可以这样做NSLog("%@" , myString!).如果myString是零,你把!程序崩溃,你会得到
fatal error: unexpectedly found nil while unwrapping an Optional value.
Run Code Online (Sandbox Code Playgroud)
但如果它有一个值,程序将继续正常并打印出来
2016-10-03 10:26:25.077 Swift3.0[65214:1579363] Test
Run Code Online (Sandbox Code Playgroud)
我写道myString = "Test".
pka*_*amb 14
NSLog() 无法打印Swift Optionals.
let optional: String?
NSLog("%@", optional) // 'NSLog' is unavailable: Variadic function is unavailable
let nonOptional: String
NSLog("%@", nonOptional) // Ok!
NSLog("%@", optional ?? "value-if-nil") // Ok!
Run Code Online (Sandbox Code Playgroud)
通过传递非可选值来修复NSLog().
注意:
print() 可以打印Swift Optionals.
| 归档时间: |
|
| 查看次数: |
11680 次 |
| 最近记录: |