Skip to content

Commit a7d6235

Browse files
committed
CDSemanticString support NSSecureCoding
1 parent d70af94 commit a7d6235

File tree

2 files changed

+37
-2
lines changed

2 files changed

+37
-2
lines changed

ClassDumpRuntime/Models/CDSemanticString.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ typedef NS_ENUM(NSUInteger, CDSemanticType) {
3838
NS_HEADER_AUDIT_BEGIN(nullability)
3939

4040
/// A string composed of substrings that may have different semantic meanings
41-
@interface CDSemanticString : NSObject
41+
@interface CDSemanticString : NSObject <NSSecureCoding>
4242
/// The length of the string
4343
@property (readonly) NSUInteger length;
4444
/// Append another semantic string to the end of this string,

ClassDumpRuntime/Models/CDSemanticString.m

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,30 @@
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

Comments
 (0)