NSSecureUnarchiveFromDataTransformer.allowedTopLevelClasses不再包括NSSet吗?

问题描述

在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
)

我正在使用NSSet的CoreData属性,使用时会崩溃。

这是错误,还是有所更改?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)