If I make two iPhone applications, how can/should I share custom data (not contacts and stuff like that) among them?
Thanks!
If I make two iPhone applications, how can/should I share custom data (not contacts and stuff like that) among them?
Thanks!
There are two different ways you might go about this.
1) The data you need to share is non-persistent. In other words you need to launch one application with a piece of data that it can do something with. In this case you would register a special URL scheme per application.
You can find out more information about URL schemes via Craig Hockenberry in his [redacted] blog post.
2) The data you need to share is persistent. In other words you need something like a data file that both applications can read and write too. As far as I know there isn't a safe way to do this other than storing your data on a remote server. If you need the data accessible without a data connection then you would need to figure out a way to sync data between the individual apps and the remote server.
In addition to what's already been mentioned, the iPhone documentation on code signing seems to imply that applications signed with the same identity can access the same Keychain items. If you need to store relatively small amounts of data (passwords, etc), this may be a useful technique.
Dan Grisby's most recent mobile orchard podcast hypothesizes that you might also use custom named clipboards to share information between apps. I realize this is an older post, but I thought I would point this out because it's high on google results. :)
(Documentation also suggests that NSUserDefaults
might be useful here, but I've read elsewhere that that's actually not the case.)
A hack I can think of is writing to and reading from the Address Book, with the API, storing data in the available fields (+ NSData conversion for the user image perhaps). Edit: I've successfully implemented the NSData conversion and storing of objects inside a contact's display image, thus making them non-editable from the contacts application.