In my iPhone app I am currently storing approximately 1000 english words in a plist and fetching them from there (as well as a second list of 1000 words to match).
This is working sort of well, but its getting a bit unwieldy. I have a little experience with CoreData and I can see how it would help me, as I could then give each word object, two words (those which match) and then have a group object related to words so I can manage them in groups so I kind of see it making sense.
However, with that much data, would fetches be slow? Is there a better way? Is it a good idea to pre-fill core-data as well (so the words exist when the user uses the app, they don't have to add anything)?
I just need to find a better solution.
Just to be clear, this is what I need to achieve:
I don't really see why using Core Data would be that much easier than a plist -- either way you'd have to populate the list somehow. It seems to me that you'd be just as well off hardcoding the plist and loading it as an NSDictionary.
Or, if you want something easier to edit, you could always just use Excel to make a comma-separated value file (csv) and create it that way. Then, you could include the csv file in your bundle and create an easy method to load up the file when the app starts, turn it into an NSArray of all the key values:
NSArray *keysAndValues = [myString componentsSeparatedByString:@","];
NSMutableArray *words = [NSMutableArray arrayWithCapacity:(keysAndValues.count / 2)];
for (int i = 0; i < keysAndValues.count; i += 2) {
[words addObject:[NSDictionary dictionaryWithObject:[keysAndValues objectAtIndex:i+1] forKey:[keysAndValues objectAtIndex:i];
}