Q:

poet.books throw fatal error: NSArray element failed to match

please help, this error broke my app.
I have two classes:
First Class-Poets
class Poets 
 {

    var poetName:String = ""
    var poetYearsOfLife:String = ""
    var poetImage:String = ""
    var poetBiography:String = ""
    var books=[Works]()
}

Second class Work 
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"

            }
    }

How I can fix this bug?
fatal error: NSArray element failed to match the Swift Array Element type

I have Work1.plist. I try to make a segue and to pass values from plist associated with a particular poetName from Poets1.plist in a table.Sorry for my bad English.
<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>

A:

My suggestion is to add an initializer to your Works class:
class Works {

    var nameWork = ""
    var workPoet = ""

    init(nameWork: String, workPoet: String) {
        self.nameWork = nameWork
        self.workPoet = workPoet
    }
}

Then you can use it like this:
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)
}

