Я решил использовать nsseCureCoding over nScoding , но у меня возникают проблемы с тем, чтобы заставить его работать. Объект инициализируется без исключения, однако. < /P>
+ (BOOL)supportsSecureCoding
{
return YES;
}
- (instancetype)initWithCoder:(NSCoder *)coder
{
// prints '1' as expected
NSLog(@"%d", coder.requiresSecureCoding);
// unexpectedly prints 'foo' (expecting crash)
NSLog(@"%@", [coder decodeObjectOfClass:NSNumber.class forKey:@"bar"]);
return [super init];
}
- (void)encodeWithCoder:(NSCoder *)coder
{
[coder encodeObject:@"foo" forKey:@"bar"];
}
< /code>
Вот код, который я использую для тестирования фрагмента из выше: < /p>
MyClass *object = [[MyClass alloc] init];
NSMutableData *const data = [[NSMutableData alloc] init];
NSKeyedArchiver *const archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
archiver.requiresSecureCoding = YES;
[archiver encodeObject:object forKey:@"root"];
[archiver finishEncoding];
NSKeyedUnarchiver *const unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
unarchiver.requiresSecureCoding = YES;
[unarchiver decodeObjectOfClass:MyClass.class forKey:@"root"];
[unarchiver finishDecoding];
< /code>
Я упускаю что -то совершенно очевидное или почему не бросается исключением во время декодирования? < /p>
Подробнее здесь: https://stackoverflow.com/questions/292 ... curecoding
Применение типов с помощью NSSeCureCoding ⇐ IOS
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение