![](/img/trans.png)
[英]executeFetchRequest throw fatal error: NSArray element failed to match the Swift Array Element type
[英]poet.books throw fatal error: NSArray element failed to match
请帮助,此错误破坏了我的应用程序。 我上两节课:头等诗人
class Poets
{
var poetName:String = ""
var poetYearsOfLife:String = ""
var poetImage:String = ""
var poetBiography:String = ""
var books=[Works]()
}
二等功
class Works
{
var nameWork:String = ""
var workPoet:String = ""
}
TableViewController
var poetsPath = NSBundle.mainBundle().pathForResource("Poets1", ofType: "plist")
var poetsArray = NSArray(contentsOfFile: poetsPath!)!
var booksPath = NSBundle.mainBundle().pathForResource("Works1", ofType: "plist")
var booksDict = NSDictionary(contentsOfFile: booksPath!)
for poetArray in poetsArray
{
let poet=Poets()
poet.poetName = poetArray["name"] as! String
poet.poetImage = poetArray["image"] as! String
poet.poetYearsOfLife=poetArray["yearsOfLife"] as! String
poet.poetBiography=poetArray["biography"] as! String
poets.append(poet)
poet.books = booksDict![poet.poetName as String] as! [(Works)]//<---error
for bookArray in poet.books {
var book=Works()
book.nameWork = "nameWork"
}
}
如何解决此错误?
fatal error: NSArray element failed to match the Swift Array Element type
我有Work1.plist。 我试图进行查询并从与表中Poets1.plist中的特定poetName相关的plist传递值。对不起我的英语不好。
<plist version="1.0">
<dict>
<key>poet_name1</key>
<array>
<dict>
<key>nameWork</key>
<string>Благовест</string>
<key>work</key>
<string>Среди дубравы</string>
</dict>
</array>
<key>poet_name2</key>
<array>
<dict>
<key>nameWork</key>
<string>Бессонные ночи</string>
<key>work</key>
<string>Какой кошмар!</string>
</dict>
</array>
</dict>
</plist>
我的建议是向您的Works
类添加一个初始化器:
class Works {
var nameWork = ""
var workPoet = ""
init(nameWork: String, workPoet: String) {
self.nameWork = nameWork
self.workPoet = workPoet
}
}
然后,您可以像这样使用它:
let worksArray = booksDict[poet.poetName as String] as! NSArray
for work in worksArray {
let dictionaryFromArray = work as! NSDictionary
let workObject = Works(nameWork: dictionaryFromArray["nameWork"] as! String, workPoet: dictionaryFromArray["work"] as! String)
poet.books.append(workObject)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.