Swift:println で様々な値を出力する

Objective-C ではデバッグ等で NSLog を使用していましたが、 Swift では主に print や println を使用するかと思います。
println はジェネリクスで定義されているので、文字列にに限らず変数やクラス等も簡単に出力結果が得られ、かつ NSLog よりも高速です。

println と print の違いは、出力時に改行があるかないかだけです。ログの出力結果に改行が入ってないと視認性が悪くなるため通常は println を使用することになるかと思います。

今回はこの println で様々な値を出力してみたいと思います。

println で様々な値を出力する

文字列

文字列は”(ダブルコーテーション)で括ります。

print("Hello")
Hello

変数

変数はそのまま記述します。文字列の中で変数を出力したいときはバックスラッシュ \ の後()で括ります。

let str: String = "Hello"

println(str)
println("str is \(str)")
Hello
str is Hello

Bool も同じくそのまま記述すれば出力されます。

var myBool1: Bool = true
var myBool2: Bool!

println(myBool1)
println(myBool2)
true
nil

記号

記号を出力したい場合はエスケープ文字の \(バックスラッシュ)を使用します。

println("backslash \\")
println("single quotation \'")
println("double quotation \"")
backslash \
single quotation '
double quotation "

float

let floatValue: Float = 123.456789

println(floatValue)
println(NSString(format:"%f", floatValue))
println(NSString(format:"%.f", floatValue))
println(NSString(format:"%.1f", floatValue))
println(NSString(format:"%.2f", floatValue))
println(NSString(format:"%.3f", floatValue))
println(NSString(format:"%.01f", floatValue))
println(NSString(format:"%.02f", floatValue))
println(NSString(format:"%.03f", floatValue))
123.456789
123.456789
123
123.4
123.45
123.456
123.4
123.45
123.456

UIColor

let color1: UIColor = UIColor.blackColor()
let color2: UIColor = UIColor.whiteColor()
let color3: UIColor = UIColor.grayColor()
let color4: UIColor = UIColor(red: 1.0, green: 0, blue: 0, alpha: 0.5)

println(color1)
println(color2)
println(color3)
println(color4)
UIDeviceWhiteColorSpace 0 1
UIDeviceWhiteColorSpace 1 1
UIDeviceWhiteColorSpace 0.5 1
UIDeviceRGBColorSpace 1 0 0 0.5

その他

func myFunction(myInt: Int) -> Int { return myInt }
println(myFunction(10))

var font: UIFont = UIFont(name: "HelveticaNeue", size: 12)!
println(font)

var time: NSTimeInterval = 10.0
println(time)

var myCGPoint: CGPoint = CGPoint(x: 12.0, y: 34.0)
println(myCGPoint)

var myRect: CGRect = CGRectMake(0, 0, 100, 200)
println(myRect)

var myInt1 = 10
var myInt2 = 20
println(myInt1+myInt2)
10
<UICTFont: 0x7f9559ecde60> font-family: "Helvetica Neue"; font-weight: normal; font-style: normal; font-size: 12.00pt
10.0
(12.0,34.0)
(0.0,0.0,100.0,200.0)
30

まとめ

println は NSLog よりも記述がシンプルなうえ高速です。

慣れないうちは、各クラスの関数やメソッドの先頭に println を記述し、引数や返り値を常に出力するようにしていれば、アプリの動きを理解しやすくなり、デバッグ等に役立ちます。NSLog より高速ですのでどんどん使っていきましょう。

この記事がみなさんのお役に立ちましたら、下記「Share it」よりブックマークやSNSで共有していただければ幸いです。

siro:chro 無料ゲーム SQN をリリースしました

img_sqn_00

sirochro 初の無料ゲームアプリ SQN をリリースしました。
記事:SQN: iOS 無料ゲームアプリ SQN - Sequential Numbers をリリース
ちょっとした時間に楽しめる完全無料のゲームなっていますので、是非ダウンロードして遊んでみてください。

↓SQN のダウンロードはこちらから

Related Contents

Pickup Contents