gpt4 book ai didi

ios - 无法将数据获取到 MasterViewController 中的 UITableView 中

转载 作者:行者123 更新时间:2023-11-30 13:30:49 26 4
gpt4 key购买 nike

我无法让 .plist 文件填充 masterviewcontroller 中的 TableView 。我正在关注一本书,代码与书中所写的完全相同,但运行代码时我在线程 1 上收到 EXC_BAD_INSTRUCTION。

var detailViewController: DetailViewController? = nil
var plantNames: [[String: String]]!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.

let path = NSBundle.mainBundle().pathForResource("plantList", ofType: "plist")!
let plantInfo = NSDictionary(contentsOfFile: path)!
plantNames = plantInfo["plants"]! as! [[String: String]]

我在最后一行收到错误。据我所知,我的 .plist 文件匹配它需要的所有内容。如果也需要发布,请告诉我。

非常感谢任何帮助!

添加了 .plist XML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>plants</key>
<array>
<dict>
<key>name</key>
<string>Lily</string>
<key>sunlight</key>
<integer>30</integer>
<key>water</key>
<integer>40</integer>
</dict>
<dict>
<key>water</key>
<integer>5</integer>
<key>sunlight</key>
<integer>80</integer>
<key>name</key>
<string>Cactus</string>
</dict>
<dict>
<key>sunlight</key>
<integer>100</integer>
<key>name</key>
<string>Bonsai Tree</string>
<key>water</key>
<integer>50</integer>
</dict>
</array>

最佳答案

字典中的值包含 StringInt 类型,因此您必须将 plantNames 声明为 [[String:AnyObject] ] 并且数据源数组应该始终是非可选的。

var plantNames: [[String: AnyObject]]()

...

plantNames = plantInfo["plants"] as! [[String: AnyObject]]

但是现在您必须将从字典中检索到的任何值转换为 StringInt

旁注:强制向下转换类型时,不需要 key 订阅后的感叹号。

或者将属性列表文件中的所有 Int 类型更改为 String 以避免类型转换。

关于ios - 无法将数据获取到 MasterViewController 中的 UITableView 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590864/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com