所以我試圖從firebase獲取值到一個表中。因此,首先我將資料項添加到型別 [Dictionary] 的串列中
資料是這樣的:
Posts:
P1 :
post data....
P2:
post data....
我正在使用的代碼
let Posts: [Dictionary<String,Any>]! = nil
var dict = Postsnapshot?.value as? Dictionary<String, Dictionary<String, Any>>
Posts.append(contentsOf: dict.values)
我正在做這樣的事情,但它拋出了這個錯誤“在呼叫實體方法'append'時沒有完全匹配”。我已經嘗試了每個初始化程式,甚至 list.append(Dict) ,仍然是同樣的錯誤。我應該怎么辦 ?
uj5u.com熱心網友回復:
您正在Posts使用大寫字母呼叫陣列,并且您可能在某處宣告了一個具有相同名稱的型別,并且編譯器感到困惑。當然,您還需要使postsavar能夠向 is 添加一些內容,因為let它使其不可變。
撰寫此代碼的更清潔和正確的方法是:
var posts: [Dictionary<String,Any>] = []
let dict = postsnapshot?.value as? Dictionary<String, Dictionary<String, Any>>
posts.append(contentsOf: Array(dict?.values ?? []))
另外請將該Postsnapshot屬性重命名為,postsnapshot除非您實際上是在某個Postsnapshot型別上呼叫靜態屬性。
以下是一些學習如何設計 Swift 代碼樣式的資源:
- 官方 raywenderlich.com Swift 風格指南。
- Google 的 Swift 風格指南
但是要了解更多關于如何最有效地使用 Swift 的資訊,我強烈建議您查看官方的Swift 語言指南,并最好閱讀整個內容。這是令人難以置信的資訊!
uj5u.com熱心網友回復:
問題是在宣告期間“讓”。一如既往地創造問題??只是將其更改為“var”。
uj5u.com熱心網友回復:
使用回圈在陣列中一一追加值
例如。
var 帖子:[Dictionary<String,Any>]!= 無
var dict = Postsnapshot?.value as? 字典<String, Dictionary<String, Any>>
對于 dict.values 中的 val {
Posts.append(val)
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/495028.html
