[MacRuby-devel] Create new Core Data Instances
Timo Springmann
timo at orangeorb.de
Mon Nov 14 04:17:59 PST 2011
Hi,
Am 14.11.2011 um 09:47 schrieb Sven A. Schmidt:
>> a) Is it really THAT complicated to create an instance of MyEntity and set the attribute? I'm coming from the Rails/ActiveRecord world where this could easily be done with a single line of code (including saving the instantiated object): MyEntity.new(:attribute1 => "Test").save )
>>
>> b) How can I save this fresh instance and update my NSTableView?
>
> After you have modeled your entity in the Xcode core data modeling view, you can use
>
> instance = NSEntityDescription.insertNewObjectForEntityForName(
> "MyEntity", inManagedObjectContext:managedObjectContext
> )
>
> to instantiate an instance. You can save it calling
>
> error = Pointer.new_with_type("@")
> managedObjectContext.save(error)
>
> To save attributes, simply assign to them:
>
> instance.attribute1 = 'Test'
>
> This assumes you've added that attribute to your model. The managedObjectContext can be created or, if you're using a core data project like the document one, you'll have a managedObjectContext accessible from your NSDocument subclass: self. managedObjectContext
I've already added attributes to my model. I'm not sure about this manageObjectContext thing. I've created the Entity with it's attributes in IB. I added an NSTableView to my window and connected it to my model. Objects are displayed in the TableView and I also can add record directly in the table (connected the add: action to a button). So my model seems to be fine. Next step would be to create an object more manually (i.e. for some kind of Import functions...). I'm not sure where I get this manageObjectContext from in my current situation or how to create one. It also seems like I should dig a little more into Core Date and check how it works... currently it seems a lot more complicated than ActiveRecord to me...
> If you have bound your NSTableView to the model object, changes will be picked up automatically. You'll only need to call save to actually persist to disk.
I hoped that would be the case. Good to know it is.
> I hope this helps somewhat, there's much more detail to it and the following links explain more of those:
>
> http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/CoreData/cdProgrammingGuide.html
I'll take a look.
> and some MacRuby specific ones that I've found useful in the past
>
> http://www.springenwerk.com/2008/10/macruby-and-core-data-tutorial.html
> http://cyberfox.com/blog/120-how-i-learned-to-stop-worrying-about-core-data-and-love-macruby
> http://reborg.tumblr.com/post/263347770/macruby-coredata-tutorial
Thanks for the links. I've already found and read them before. But they didn't answer my questions (or I were too blind to see it). I've got feeling that I've read every single page about MacRuby that Google will find ;-)
Regards,
Timo
--
twitter.com/orangeorb
More information about the MacRuby-devel
mailing list