I have an object of class SGBContainer
which has an array named objects
that contains objects of class SGBObject
. Currently, they each implement NSCoding but not NSSecureCoding. The -initWithCoder:
for SGBContainer
looks like this:
- (id)initWithCoder:(NSCoder *)aCoder
{
self = [self init];
if (self)
{
_objects = [aCoder decodeObjectForKey:@"objects"];
}
}
I want to switch to using NSSecureCoding, and from what I can tell, it would mean changing the above to this:
- (id)initWithCoder:(NSCoder *)aCoder
{
self = [self init];
if (self)
{
_objects = [aCoder decodeObjectOfClass:[NSArray class] forKey:@"objects"];
}
}
...which isn't much of an improvement, as the contents of the array will be instantiated whatever their class. How do I make sure that the array only contains objects of class SGBObject
without instantiating them?