I’ve been reading up on SQLite3 included in the iOS firmware which might serve my needs for the app i’m writiung.
What I can’t figure out is if it is persistent or goes away like some objects do.
For example if I do sqlite3_open() which appears to be a C function rather than an Objective-C object, if I open this at the start of my application, will it stay persistent until I close it no matter how many views I push/pop all over the place.
Obviously that would depend on where I put it but if I was doing a universal app and had some central functions for loading / saving data which were common to both iPhone/iPad, if, in my didFinishLoading: I put a call to open the SQLite database and then called various exec’s of queries, would it remain persistent throughout the lifecycle of the application.
or
Am I better off opening and closing as needed, i’m coming from a PHP background so i’d normally open a database at the start of the script and then run many queries and then finally close it before browser output.
From the 1,000,000th i’ve learned over the last few months about iOS programming, I think the latter might be the better way as there’s possibility of app exit prematurely or it going to background.
I’d just like a second opinion on my thinking please.
I dont know directly, but I think you are right – you only need to open it once at the start of your app.
Looking at sqlitepersistentobjects, an ORM framework for iOS, it only opens the DB when its first used, and never closes it except when there is a problem opening it 🙂