There’s a downside to everything
Despite all of core data’s advantages, there are many disadvantages as well. For example, the fact that it’s written in Objective-C is one major disadvantage because Objective-C only runs on Mac operating system. In order to implement the same program written in Objective-C onto other computer that doesn’t support it, it will require a lot of time. It requires more time because developers has to convert the Objective-C language to another language, and possible problems that could occur are bugs in the program. Moreover, in the effort of trying to change the program to another language based, it will take much more codes.
For SQLite, the situation that developers will consider using SQL directly is when the application needs to extend beyond just the use in the apple operating system. If the application was originally written with SQL, the code will support with other system as well. For NSCoding, the counter argument for using it instead of core data is that it actually doesn’t require that much more codes than core data do but it is more simple than core data, therefore, requiring less effort to debug the codes.
To conclude, we simply can’t determine which method is better for saving data because in the end different methods has its positive side and its negative side. It all comes down to the situation that developers are in. (Panchapol) If developers have to complete a task within short notice, perhaps Core Data is the right option. However, if developers are looking to expand the application to other operating system as well, they might consider SQLite.
Apple Company is developing new technologies and intelligences everyday. The development of core data and any frameworks of IOS are unstoppable. Core data has a very efficient framework now and it’s quite difficult to become even more efficient than it is. However, one aspect of the development that could constantly be developing is the built-in class reference of core data. In present day, core data has up to twenty-six class references, which means every time a developer add a core data framework, they gain access to all of these class references as well. However, if we look at the present day and the recent development, Apple had released the new IOS and OS for apple users. Most of new applications are now linked with the iCloud system. So in the future forecast, iCloud might play out as a common method for data storage.
Moreover, a development of core data could include the reconstruction of how core data works. It might be the change that affects the managed object context, persistent store and persistent store coordinator. Take the new iOS7 as an example, when apple released iOS7, core data also had minor changes and some programmers had difficulty learning the code.
One very possible advance for core data would be if the NSFetching of core data that requires NSPredicate to fetch specific objects based on the entity of objects could...