現在、Realmの使い方を学んでいます。

そこで、http://qiita.com/jtemplej/items/10ed4bc0cc6519682e6e#notification のコードを下記のように書き写して、マイグレーションを勉強しています。

// Book.swift

class Book : RLMObject {
    dynamic var isbn = ""
    dynamic var name = ""
    dynamic var price = 0
    //サムネイルを追加したいから、imageURLを追加
    dynamic var imgURL = ""

    dynamic var publisher = Publisher()

    dynamic var owner: Publisher? {
        return linkingObjectsOfClass("Publisher", forProperty:"books").first as? Publisher
    }

    class func find(isbn:String) -> Book? {
        let result:Optional = Book.objectsWithPredicate(NSPredicate(format: "isbn = %@", isbn))
        if let books = result {
            return books.firstObject() as? Book
        }
        return nil
    }

    override class func primaryKey()->String{
        return "isbn"
    }
}

 

// AppDelegate.swift

import UIKit
import Realm

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

var window: UIWindow?

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    // Override point for customization after application launch.

    RLMRealm.setSchemaVersion(1, forRealmAtPath:RLMRealm.defaultRealmPath() , withMigrationBlock: { (migration,oldSchemaVersion) in
        if oldSchemaVersion < 1 {
            migration.enumerateObjects(Book.className()) { (oldObject, newObject) in
                let book2 = newObject as! Book
                let isbn = oldObject["isbn"] as! String // <--ここで、'AnyObject' is not convertible to 'String'とエラーが出てしまう 
            }
        }
    })
    return true
}

上記のように、let isbn = oldObject["isbn"] as! Stringの部分で、'AnyObject' is not convertible to 'String'というエラーがでてしまう状態を解決できません。

どのようにすればよいのか教えてください。