Super Awesome Easy Fetching for Core Data 1!!!11!!!!1!
Type Name Latest commit message Commit time
Failed to load latest commit information.
Carthage/Checkouts Update to Expecta 1.0.3 Sep 17, 2015
Docs Merge pull request #1049 from connor/patch-1 Oct 21, 2015
MagicalRecord.xcodeproj Fix build scripts not handling paths with spaces in them Apr 26, 2016
MagicalRecord Fix a minor issue with the shorthand aliases, and add some tests arou… Jan 29, 2016
Samples/iOS Add a few missing calls to super in the iOS sample project Nov 1, 2014
Support Push the podspec whenever we tag a release Jan 21, 2016
Tests Fix a minor issue with the shorthand aliases, and add some tests arou… Jan 29, 2016
.clang-format Update Clang Format configuration to be compatible with Clang 3.8's o… Jan 21, 2016
.cocoadocs.yml Lots of updates to the documentation from the wiki (and some new cont… Nov 1, 2014
.gitignore CocoaPods on TravisCI appears to be a ghetto — I can't deal with this… Jan 29, 2016
.gitmodules Include Expecta as an Xcode subproject, rather than as a binary May 23, 2015
.travis.yml Deploy podspec before Carthage artefacts Jan 30, 2016 Update changelog for v2.3.1 and v2.3.2 Jan 28, 2016 relative link leads to 404→ absolute link is 200:) Aug 28, 2015
Cartfile.private Include binary compiles of Expecta using Carthage to reduce testing time May 7, 2015
Cartfile.resolved Update to Expecta 1.0.3 Sep 17, 2015
LICENSE Fix typo URL at LICENSE file Aug 19, 2015
MagicalRecord.podspec Bump marketing version to 2.3.3 Jan 29, 2016 Update Mar 4, 2015

Awesome MagicalRecord

Circle CI

In software engineering, the active record pattern is a design pattern found in software that stores its data in relational databases. It was named by Martin Fowler in his book Patterns of Enterprise Application Architecture. The interface to such an object would include functions such as Insert, Update, and Delete, plus properties that correspond more-or-less directly to the columns in the underlying database table.

Active record is an approach to accessing data in a database. A database table or view is wrapped into a class; thus an object instance is tied to a single row in the table. After creation of an object, a new row is added to the table upon save. Any object loaded gets its information from the database; when an object is updated, the corresponding row in the table is also updated. The wrapper class implements accessor methods or properties for each column in the table or view.

- Wikipedia

MagicalRecord was inspired by the ease of Ruby on Rails' Active Record fetching. The goals of this code are:

  • Clean up my Core Data related code
  • Allow for clear, simple, one-line fetches
  • Still allow the modification of the NSFetchRequest when request optimizations are needed



MagicalRecord is provided as-is, free of charge. For support, you have a few choices:

  • Ask your support question on, and tag your question with MagicalRecord. The core team will be notified of your question only if you mark your question with this tag. The general Stack Overflow community is provided the opportunity to answer the question to help you faster, and to reap the reputation points. If the community is unable to answer, we'll try to step in and answer your question.
  • If you believe you have found a bug in MagicalRecord, please submit a support ticket on the Github Issues page for MagicalRecord. We'll get to them as soon as we can. Please do NOT ask general questions on the issue tracker. Support questions will be closed unanswered.
  • For more personal or immediate support, MagicalPanda is available for hire to consult on your project.


Follow @MagicalRecord on twitter to stay up to date with the latest updates relating to MagicalRecord.