I would like to have at least 2 arrays which I can create when the user first saves something, and from then on read from the array when the user wants to view that data, and update the data when the user is done updating it.
Does a file need to be created before hand or how is this done on the device during runtime?
Just storing 2 arrays on the device somewhere with the correct path and loading/updating it when needed. I tried a few things, but couldnt seem to get it to work.
I strongly suggest using some sort of database to persist such data, either Core Data or SQLite. With SQLite (my strong point), you can keep the database file open, saving changes to the array transactionally. There is very little chance of anything going wrong, thanks to SQLite’s journalling mechanism and its staggeringly thorough testing regime. Core Data is built on SQLite, so the same guarantees apply.
EDIT (RE: comments):
Overkill is only an issue in situations where the cost of the solution is excessive for the problem being solved. SQLite is just sitting around asking to be used. First off, you can create a data structure to represent the data more meaningfully:
SQLite’s raw interface is a bit clunky, so I’d save and load these using a C++ wrapper library to keep things simple:
(WARNING: This code is totally untested.)
It is unlikely a home-grown file format will require any less code than this, and it will almost certainly be less robust.
You should also consider Core Data, but I haven’t used it myself, so I can’t offer assistance on that front.