簡體   English   中英

Swift [String:AnyObject]無法轉換為T Swift數組

[英]Swift[String: AnyObject] not convertible to T Swift Arrays

我正在使用Swift擴展程序。 我試圖將數據追加到[[String: AnyObject]]類型的數組中。 之所以在擴展中,是因為我必須對很多數組進行很多次。 問題是,當我追加類型為[String: AnyObject]的對象時,出現錯誤: Dictionary'<'String, AnyObject'>' Not Convertible to T (引號存在,因為在胡蘿卜中未顯示任何內容) 。

mutating func appendData(data: [String: [String: AnyObject]]?) {
    if data != nil {
        for (id, object) in data! {
            var mutatingObject = object
            mutatingObject["id"] = id
            append(mutatingObject)
        }
    }
}

我不確定您到底要達到什么目標。 但請注意-數組是存儲特定類型的通用集合。 Array擴展可能不知道在每種情況下將使用哪種類型,因此它不能簡單地允許您存儲Dictionary<String, AnyObject>

這是有關如何使代碼更通用的示例:

extension Array {
    mutating func appendData(data: [String: T]?) {
        if data != nil {
            for (id, object) in data! {
                if var mutatingObject = object as? [String : AnyObject] {
                    mutatingObject["id"] = id
                }

                append(object)
            }
        }
    }
}

暫無
暫無

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

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