微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

NSSecureUnarchiveFromDataTransformer.allowedTopLevelClasses不再包括NSSet吗?

如何解决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 举报,一经查实,本站将立刻删除。