ゼロ例えば迅速な例</p> <pre><code>NSString *test=nil; </code></pre><p>ためのObjective-Cで
var test: String? = nil
ゼロ例えば迅速な例</p> <pre><code>NSString *test=nil; </code></pre><p>ためのObjective-Cで
var test: String? = nil
スウィフトタイプのシステムはあなたにtest
の選択性を扱わせるでしょう。最初にアンラッピングしないと使えませんでした。
test
がString?
であり、nil
であるため、test.lowercaseString
を呼び出すことができませんでした。あなたが最初にそれをアンラップする必要があると思います:Objective-Cで
if let test = test {
print(test.lowercaseString)
}
else {
//test was nil, handle error here
}
、test
はただの変数で、型システムは、それがnilであることについて何の手掛かりを持っていません。
NSLog([test lowercaseString]) //Boom goes the dynamite.
the language guide section on thisをお読みください。
Swiftのすべてのものは、オブジェクト参照だけでなくオプションでもかまいません。 3つの可能な値nil、false、およびtrueを持つオプションのboolを持つことができます。オプションのダブルを使用できます。これはObjective-Cではまったく利用できないものです。
Swiftでは、オブジェクト参照にはオプションとオプションではないという2つの味があります。オプションはnilでもnilでもかまいません。非選択詞はこれまでどおりにすることはできません。 Objective-Cでは、任意のオブジェクト参照がnilになる可能性があります。
違いは何だと思いますか?あなたは何を問題にしていますか?これが本当にあなたの質問の範囲であれば、公式の文書を読んで – Wain
「Swift with Cocoa and Objective-C」リファレンスを見ましたか?特に、「ナラティリティとオプション」の章では? –