現在、realmの使い方を学んでいます。
そこで、http://qiita.com/jtemplej/items/10ed4bc0cc6519682e6e#notificationのコードを下記のように書き写して、マイグレーションを勉強しています。
Book.swift
lang
1 2class Book : RLMObject{ 3 dynamic var isbn = "" 4 dynamic var name = "" 5 dynamic var price=0 6 //サムネイルを追加したいから、imageURLを追加 7 dynamic var imgURL="" 8 9 dynamic var publisher=Publisher() 10 11 dynamic var owner:Publisher?{ 12 return linkingObjectsOfClass("Publisher", forProperty:"books" ).first as? Publisher 13 14 } 15 16 class func find(isbn:String) -> Book? { 17 let result:Optional = Book.objectsWithPredicate(NSPredicate(format: "isbn = %@", isbn)) 18 if let books = result { 19 return books.firstObject() as? Book 20 } 21 return nil 22 } 23 24 override class func primaryKey()->String{ 25 return "isbn" 26 } 27 28 29} 30 31 32
AppDelegate.swift
lang
1import UIKit 2import Realm 3 4@UIApplicationMain 5class AppDelegate: UIResponder, UIApplicationDelegate { 6 7 var window: UIWindow? 8 9 10 func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 11 // Override point for customization after application launch. 12 13 14 RLMRealm.setSchemaVersion(1, forRealmAtPath:RLMRealm.defaultRealmPath() , withMigrationBlock: {migration,oldSchemaVersion in 15 if oldSchemaVersion < 1{ 16 migration.enumerateObjects(Book.className()){ oldObject,newObject in 17 18 let book2=newObject as! Book 19 let isbn = oldObject["isbn"] as! String<--ここで、'AnyObject' is not convertible to 'String'とエラーが出てしまう 20 21 } 22 23 } 24 25 26 }) 27 return true 28 } 29 30
上記のように、let isbn = oldObject["isbn"] as! Stringの部分で、'AnyObject' is not convertible to 'String'というエラーがでてしまう状態を解決できません。
どのようにすればよいのか教えてください。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー