[英]SWIFT work with arrays and dictionaries
我正在嘗試通過數組中的segue將信息傳遞給第二個控制器:
var gists = [Gists]()
這就是我對方法prepare(for segue:的實現
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "detailSegue" {
if let indexPath = tableView.indexPathForSelectedRow {
guard let dvc = segue.destination as? DetailViewController else { return }
dvc.filename = gists[indexPath.row].files.key // type String
dvc.rawUrl = gists[indexPath.row].files.value // type String
}
}
}
這是我的數組要點的轉儲:
▿ 2 elements
▿ GistShowApp.Gists
▿ description: Optional("mySecondGist")
- some: "mySecondGist"
▿ files: 1 key/value pair
▿ (2 elements)
- key: "gistfile1.txt"
▿ value: GistShowApp.DetailGist
▿ filename: Optional("gistfile1.txt")
- some: "gistfile1.txt"
▿ rawUrl: Optional("https://gist.githubusercontent.com/VladimirKhuraskin/9ca2362c09cebcc16bd74f51f267231a/raw/74caacd3ad3eedb369a07b926327d2ef37e3eefc/gistfile1.txt")
- some: "https://gist.githubusercontent.com/VladimirKhuraskin/9ca2362c09cebcc16bd74f51f267231a/raw/74caacd3ad3eedb369a07b926327d2ef37e3eefc/gistfile1.txt"
▿ GistShowApp.Gists
▿ description: Optional("helloWorldDemo")
- some: "helloWorldDemo"
▿ files: 1 key/value pair
▿ (2 elements)
- key: "gistfile1.txt"
▿ value: GistShowApp.DetailGist
▿ filename: Optional("gistfile1.txt")
- some: "gistfile1.txt"
▿ rawUrl: Optional("https://gist.githubusercontent.com/VladimirKhuraskin/c510014b85a6bdfa302f1f3837893a7c/raw/4648e701849ee7d52fb685111a7f0e4323505a35/gistfile1.txt")
- some: "https://gist.githubusercontent.com/VladimirKhuraskin/c510014b85a6bdfa302f1f3837893a7c/raw/4648e701849ee7d52fb685111a7f0e4323505a35/gistfile1.txt"
2018-06-30 15:30:26.336720+0400 GistShowApp[1889:720551] [Snapshotting] Snapshotting a view (0x134032c00, UIKeyboardImpl) that is not in a visible window requires afterScreenUpdates:YES.
也就是說,我有一組元素gist ,每個元素由一個字符串和一個字典組成。 反過來,此字典的類型為[String:String] 。 而且我需要傳遞密鑰和相應的值。
Xcode在這些行上產生錯誤。 如何正確書寫?
dvc.filename = gists[indexPath.row].files.key
dvc.rawUrl = gists[indexPath.row].files.value
gists[indexPath.row].files
是一本字典,因此您需要將dvc.filename
和dvc.rawUrl
設置dvc.filename
dvc.rawUrl
中的一個條目,或將整個字典傳遞給詳細視圖控制器。
對於第一種選擇:
dvc.filename = gists[indexPath.row].files["gistfile1.txt"].filename
dvc.rawUrl = gists[indexPath.row].files["gistfile1.txt"].rawURL
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.