The method writeToFile: only works if the contents are "property list objects," that is, a combination of NSString, NSData, NSArray, or NSDictionary. It won't work with your custom objects.
If you make your objects conform to NSCoding, however, then you can save an array of them using NSKeyedArchiver instead:
Code:
[NSKeyedArchiver archiveRootObject: array toFile:filePath];
Here's a tutorial on how to make your objects conform to NSCoding.
How to save your game (or any object) on the iPhone | Dead Panic