Have you thought about using a plist file? This would be the easiest to parse. You can have an array of goals (dictionaries), and then determine the position, the absolute delay, and whatever you want.

Then just read it in the array:
NSArray *targets = [NSArray arrayWithContentsOfFile:plistPath];
for (NSDictionary *dictionary in targets) {
CGPoint position = CGPointMake([dictionary[@"positionX"] floatValue],
[dictionary[@"positionY"] floatValue]);
float delay = [dictionary[@"time"] floatValue];
}
You can also do the same with CSV files, but it would be a little harder to parse (not too hard).
As for archives, Apple means that all Sprite Kit classes support NSCoding. This means that they can be archived to a file (or an NSData object) and then not archived from this archive. This, however, is different from what you want to do. Archiving would create one βsnapshotβ of the current state of the game. Therefore, it would be nice to save the game, for example, when the user leaves.