From the documentation of NSPropertyListSerializationClass:
A property list object. plist must be
a kind of NSData, NSString, NSNumber,
NSDate, NSArray, or NSDictionary
object. Container objects must also
contain only these kinds of objects.
So you need to have one of those. Depending on the type of data, you could put in a placeholder instead of NSNull and then do a process before/after loading the .plist (like, for example, using a zero-length NSData object to represent your NSNull in the plist). Exactly what kind of placeholder would be dependent on what kind of data you are storing, and choosing something to avoid. Then, after loading, translate the empty NSData back to NSNull.