0

在 NSSecureUnarchiveFromDataTransformer 的类头中,记录了 NSSet 是一个允许的类。

/// A value transformer which transforms values to and from \c NSData by archiving and unarchiving using secure coding.
API_AVAILABLE(macos(10.14), ios(12.0), watchos(5.0), tvos(12.0))
@interface NSSecureUnarchiveFromDataTransformer : NSValueTransformer

/// The list of allowable classes which the top-level object in the archive must conform to on encoding and decoding.
///
/// Returns the result of \c +transformedValueClass if not \c Nil; otherwise, currently returns \c NSArray, \c NSDictionary, \c NSSet, \c NSString, \c NSNumber, \c NSDate, \c NSData, \c NSURL, \c NSUUID, and \c NSNull.
///
/// Can be overridden by subclasses to provide an expanded or different set of allowed transformation classes.
@property (class, readonly, copy) NSArray<Class> *allowedTopLevelClasses;

@end

但是,当调用此方法时,我看到 NSSet 未包含在返回的数组中。

(lldb) po NSSecureUnarchiveFromDataTransformer.allowedTopLevelClasses
<__NSArrayI 0x600003a59fe0>(
NSArray,
NSDictionary,
NSString,
NSNumber,
NSDate,
NSData,
NSURL,
NSUUID,
NSNull
)

我在 CoreData 属性中使用 NSSet,使用它时遇到崩溃。

这是一个错误,还是有什么改变?

4

0 回答 0