, пожалуйста, помогите, эта ошибка сломала мое приложение. У меня есть два класса: Первоклассный ПоэтыПоэта. Книги бросают фатальную ошибку: элемент NSArray не соответствует
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. Я пытаюсь сделать segue и передать значения из plist, связанные с определенным именем поэта из Poets1.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>
Как я понимаю ваш пример кода, 'booksDict! [poet.poetName as String] 'будет массивом словарей, а не массивом или объектами' Works'. – Moritz
Да, booksDict! [Poet.poetName as String] - это набор словарей, и я не понимаю, как связать эти словари с поэтомName.Nothing works :(Когда я пытаюсь установить книгиDict! [Poet.poetName as String] тип NSArray, таблица в третьем сегменте становится пустым @ ericd – Diana