88
99#import " CDSemanticString.h"
1010
11- @interface CDSemanticStringStaple : NSObject
11+ @interface CDSemanticStringStaple : NSObject < NSSecureCoding >
1212@property (strong , nonatomic ) NSString *string;
1313@property (nonatomic ) CDSemanticType type;
1414@end
1515
1616@implementation CDSemanticStringStaple
17+
18+ - (instancetype )initWithCoder : (NSCoder *)coder {
19+ if (self = [super init ]) {
20+ _string = [coder decodeObjectOfClass: [NSString class ] forKey: NSStringFromSelector (@selector (string ))];
21+ _type = [coder decodeIntegerForKey: NSStringFromSelector (@selector (type ))];
22+ }
23+ return self;
24+ }
25+
26+ - (void )encodeWithCoder : (NSCoder *)coder {
27+ [coder encodeObject: _string forKey: NSStringFromSelector (@selector (string ))];
28+ [coder encodeInteger: _type forKey: NSStringFromSelector (@selector (type ))];
29+ }
30+
31+ + (BOOL )supportsSecureCoding {
32+ return YES ;
33+ }
34+
1735@end
1836
1937
@@ -29,6 +47,23 @@ - (instancetype)init {
2947 return self;
3048}
3149
50+ - (instancetype )initWithCoder : (NSCoder *)coder {
51+ if (self = [super init ]) {
52+ _components = [coder decodeObjectOfClasses: [NSSet setWithObjects: [CDSemanticStringStaple class ], [NSMutableArray class ], nil ] forKey: @" components" ];
53+ _length = [coder decodeIntegerForKey: NSStringFromSelector (@selector (length ))];
54+ }
55+ return self;
56+ }
57+
58+ - (void )encodeWithCoder : (NSCoder *)coder {
59+ [coder encodeObject: _components forKey: @" components" ];
60+ [coder encodeInteger: _length forKey: NSStringFromSelector (@selector (length ))];
61+ }
62+
63+ + (BOOL )supportsSecureCoding {
64+ return YES ;
65+ }
66+
3267- (void )appendSemanticString : (CDSemanticString *)semanticString {
3368 [_components addObjectsFromArray: semanticString->_components];
3469 _length += semanticString.length ;
0 commit comments