1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | #! /usr/local/bin/macruby # coding:utf-8 # framework 'Foundation' framework 'CoreData' DB_NAME = "Question" ENTITY_NAME = "Question" class DB def managedObjectModel if ( @managedObjectModel != nil ) return @managedObjectModel end modelURL = NSURL .URLWithString Dir .pwd+ "/#{DB_NAME}.momd" @managedObjectModel = NSManagedObjectModel.alloc.initWithContentsOfURL(modelURL) return @managedObjectModel end def persistentStoreCoordinator if ( @persistentStoreCoordinator != nil ) return @persistentStoreCoordinator end storeURL = NSURL .fileURLWithPath Dir .pwd+ "/#{DB_NAME}.sqlite" error = Pointer. new ( :object ) @persistentStoreCoordinator = NSPersistentStoreCoordinator.alloc.initWithManagedObjectModel( self .managedObjectModel) if (! @persistentStoreCoordinator .addPersistentStoreWithType(NSSQLiteStoreType, configuration :nil , URL :storeURL , options :nil , error :error )) puts "Unresolved error #{error}, #{error.userInfo}" abort() end return @persistentStoreCoordinator end def managedObjectContext if ( @managedObjectContext != nil ) return @managedObjectContext end coordinator = self .persistentStoreCoordinator if (coordinator != nil ) @managedObjectContext = NSManagedObjectContext.alloc.init @managedObjectContext .setPersistentStoreCoordinator(coordinator) end return @managedObjectContext end def saveContext error = Pointer. new ( :object ) managedObjectContext = self .managedObjectContext if (managedObjectContext != nil ) if (managedObjectContext.hasChanges || !managedObjectContext.save(error)) puts "Unresolved error #{error}, #{error.userInfo}" abort() end end end end `/Developer/usr/bin/momc #{DB_NAME}.xcdatamodeld #{DB_NAME}.momd` if File .exist? "#{DB_NAME}.sqlite" File .delete "#{DB_NAME}.sqlite" end db = DB . new p model = db.managedObjectModel var = { "YEAR" => 2010 } request = model.fetchRequestFromTemplateWithName( "QuestionsWithYear" , substitutionVariables :var ) p request.predicate.predicateFormat db.saveContext |
2011年8月17日水曜日
MacRuby から CoreData
アプリに入れるデータは MacRuby で作っていたりします。Objective-C でも良いんだけど、コンパイルとか面倒だし、テキスト処理は Ruby だと楽チンだし♪
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿