[英]Swift 2.0 and let warnings
我在Swift 2.0中有問題
這是我編寫的當前代碼塊:
let URL = NSURL(string:"www.google.com")
然后收到以下警告:“從未使用不可變值URL的初始化,請考慮將其替換為“ _”或將其刪除。
我要宣告租約時該怎么辦。
寫作時我收到類似的警告
在Swift 2.0中我可以做什么來聲明Let或var?
initialization of immutable value URL was never used
意味着您沒有在任何地方使用該變量,因此它會引發警告。 但是,看截圖,您已將URL
聲明為var
並將其用於另一個var的data
中。
因此,現在應該有兩個警告。 URL
被聲明為var
但從未更改,並且從未使用過data
變量。
為了滿足,請使用let URL ...
因為您沒有對其進行突變。 並刪除data
因為這是異步塊/關閉,您可以從完成塊訪問data
。
注意:
以后不修改時應使用let
,而要修改對象時應使用var
。 考慮數組:
let immutableArray:[String] = ["foo", "bar"]
var mutableArray:[String] = ["hello"]
mutableArray.append("World") // Is valid since its a var
immutableArray.append("abc") // Not valid, infact auto complete does not even show append methods
每當您聲明let
而不使用該常量編譯器時,都會顯示警告。 不用擔心。 如果您使用的不是let
恆替換_
。 這是為了優化。 如果您不使用刪除該讓。 或者要使警告靜音,請使用簡單的print(YOUR Constant)
let url = URL = NSURL(string:"www.google.com")
比
let data = NSURLSession.sharedSession().downloadTaskWithURL(URL!) {
{ (data, response, error) in {
if(error != nil) {
print(data) // This data is different from let data constant
}
print(data) // This will silence warning. Also make sure it is not nil
這可能工作正常。
let URL = NSURL(string:"www.google.com")
NSURLSession.sharedSession().downloadTaskWithURL(URL!) { (url: NSURL?, response: NSURLResponse?, error: NSError?) -> Void in
if error == nil && url != nil {
let data = NSData(contentsOfURL: url!)
print(data)
}
}
你應該改變var
來let
以解決此警告。 為了節省內存,編譯器建議用戶僅在需要從變量獲取值而無需設置時使用let
而不是var
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.