English 中文(简体)
恢复核心数据中的各种习俗课程
原标题:Saving an array of custom classes in Core Data

我试图将核心数据中的一系列习俗类别作为可变的属性加以节省,但在试图装上所节省的数据时却留下以下错误:

 NSSecureUnarchiveFromData transformer> threw while decoding a value. ({
    NSUnderlyingError = "Error Domain=NSCocoaErrorDomain Code=4864 "value for key  NS.objects  was of unexpected class  MyCustomClass  

In the Core Data schema I have set the transformer to "NSSecureUnarchiveFromData" and the Custom Class to "NSArray" (since I want to save an array of "MyCustomClass")

MyCustomClass.h

@interface MyCustomClass : NSObject <NSSecureCoding>

@property (nonatomic, assign) NSString *identifier;

MyCustomClass.m

@implementation MyCustomClass

+ (BOOL)supportsSecureCoding {
    
    return YES;
}

- (void)encodeWithCoder:(nonnull NSCoder *)coder {
    
    [coder encodeObject:self.identifier forKey:@"Identifier"];
}

- (nullable instancetype)initWithCoder:(nonnull NSCoder *)coder {
    
    if (self = [super init]) {
        
        self.identifier = [coder decodeObjectOfClass:[NSString class] forKey:@"Identifier"];
    }
    
    return self;
}

我甚至试图将“MyCustomClass+CoreDataProperties”的财产申报改为NSArray<MyCustom 班级* ;但也有同样的错误。

我没有采取什么步骤,或者说错了?

最佳回答

我没有采取几个步骤。 除上述法典外,还必须做以下工作:

• 将模版编辑的属性习俗类别改为NSArray

• 创建名为MyCustomClastransformer的新班:

@interface MyCustomClassTransformer: NSSecureUnarchiveFromDataTransformer {}
@end

@implementation MyCustomClassTransformer
+ (Class)transformedValueClass {
    return [MyCustomClassTransformer class];
}
+ (BOOL)allowsReverseTransformation {
    return YES;
}

+ (NSArray<Class> *)allowedTopLevelClasses {
    return @[[MyCustomClass class], [NSArray class]];
}
@end

• 注册新变革者,“didFinishLaunching WithOptions”:

MyCustomClassTransformer *transformer = [MyCustomClassTransformer new];
[NSValueTransformer setValueTransformer:transformer forName: @"MyCustomClassTransformer"];
问题回答

暂无回答




相关问题
List Contents of Directory in a UITableView

I am trying to list the contents of Ringtones directory in a TableView, however, I am only getting the last file in the directory in ALL cells, instead of file per cell. This is my code: - (...

iPhone NSUserDefaults persistance difficulty

In my app i have a bunch of data i store in the NSUserdefaults. This information consists of an NSObject (Object1) with NSStrings and NSNumbers and also 2 instances of yet another object (Object2). ...

Writing a masked image to disk as a PNG file

Basically I m downloading images off of a webserver and then caching them to the disk, but before I do so I want to mask them. I m using the masking code everyone seems to point at which can be found ...

Resize UIImage with aspect ratio?

I m using this code to resize an image on the iPhone: CGRect screenRect = CGRectMake(0, 0, 320.0, 480.0); UIGraphicsBeginImageContext(screenRect.size); [value drawInRect:screenRect blendMode:...

Allowing interaction with a UIView under another UIView

Is there a simple way of allowing interaction with a button in a UIView that lies under another UIView - where there are no actual objects from the top UIView on top of the button? For instance, ...

热门标签