主要有兩個函數(shù)用于輸出的文本表示對象和變量,那就是 print( ) 和println( )。
- println( )換行輸出;
- 其他的函數(shù)還有 debugPrintln()和debugPrint();
下面的例子中給出了一些功能,可以用于高級調(diào)試。
e.g: println("Hello World!")
控制臺輸出:
Hello World!
e.g:
var temp:String = "This is a String "
println(temp)
debugPrintln(temp)
控制臺輸出:
This is a String
"This is a String"
要實現(xiàn)對某個進(jìn)行描述輸出,可以重寫debugDescription( )或者 description( )方法:
e.g:
class ClassA: NSObject {
var name: String = "unknown"
override var description: String {
return "ClassA: \(name)"
}
}
var tempA: ClassA = ClassA()
print(tempA.description)
println(tempA)
控制臺輸出:
ClassA: unknown
ClassA: unknown
使用toDebugString( )和toString( ) 這兩個方法將返回的結(jié)果debugPrint并打印成一個字符串:
e.g:
var str: String = toString(tempA)
println(str)
控制臺輸出:
ClassA: unknown
precondition( )和preconditionFailure( )這兩個方法的使用:
e.g:
var value: String = ""
if value.lengthOfBytesUsingEncoding(NSUTF8StringEncoding) == 0 {
preconditionFailure("value is empty")}
控制臺輸出:
fatal error: value is empty: file /Users/cramesh/Documents/My_Works/SwiftTutorial/SwiftTutorial/AppDelegate.swift, line 37
確定一個對象可以用unsafeAddressOf():
e.g: println(unsafeAddressOf(value))
控制臺輸出:
0x00007f8df251e480
輸出和方法名可以做一下處理:
var className = NSStringFromClass(self.classForCoder) println(className)
var methodName = NSStringFromSelector(__FUNCTION__)
println(methodName)
//或者
println(__FUNCTION__)