簡體   English   中英

AnyObject不能轉換為'String'

[英]AnyObject is not convertible to 'String'

我收到以下錯誤AnyObject'無法轉換為'String'。 if (answerArray != NSNull() && answerArray != nil)我在此錯誤if (answerArray != NSNull() && answerArray != nil)

我嘗試將其強制轉換為String,但無法解決問題。 我在下面發布了整個代碼。

 let answerArray : AnyObject = jsonparser.objectWithString(answer)
 if (answerArray != NSNull()  && answerArray != nil) {

}

我的理解是jsonparser.objectWithString(answer)應該基於分配給它的變量的名稱返回一個數組。

如果是異類類型的數組,則可以嘗試NSArrayNSArray

if let answerArray = jsonparser.objectWithString(answer) as? NSArray {
    ...
}

如果該數組應該包含相同類型的對象(比如說Int ),那么您可以嘗試將類型轉換為swift數組:

if let answerArray = jsonparser.objectWithString(answer) as? [Int] {
    ...
}

需要注意的是一個非可選變量永遠nil -你已經宣布answerArray作為非可選。

如果要檢查NSNull ,建議閱讀此問題和相關答案。

我的猜測是answerArray != nil是錯誤的answerArray != nil很傻,因為它返回的錯誤是“無法轉換為String”。 更有用的是answerArray不是可選的。

那就是您的問題-您let answerArray : AnyObject...並且AnyObject不是Optional 在Swift中,“ answerArray”從不為“ nil”,因為只有Optional類型可以為nil

如果不查看jsonparser.objectWithString功能,我很難更正您的代碼,但是從本質上講,編譯器告訴您正在檢查nil的非可選類型-這是不正確的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM