完整的自定义对象未存储在NSUserDefault中

时间:2016-09-03 09:50:32

标签: objective-c

在NSUserDefault中存储对象后,我有自定义对象问题描述与NSCoding协议我只得到两个(patProbId,patientId)属性,其余为空 -

@property (nonatomic, strong) NSString *patProbId;
@property (nonatomic, strong) NSString *patientId;
@property (nonatomic, strong) NSString *visitId;
@property (nonatomic, strong) NSString *doctorId;
@property (nonatomic, strong) NSString *description;
@property (nonatomic, strong) NSString *status;
@property (nonatomic, strong) NSString *diagonisedDate;
@property (nonatomic, strong) NSString *audModTs;

(id)initWithCoder:(NSCoder *)decoder {
    self = [super init];
    if (!self) {
        return nil;
    }
         self.patProbId = [decoder decodeObjectForKey:Dict_patProbId];
         self.patientId = [decoder decodeObjectForKey:Dict_patientId];
         self.visitId = [decoder decodeObjectForKey:Dict_visitId];
         self.doctorId = [decoder decodeObjectForKey:Dict_doctorId];
         self.description = [decoder decodeObjectForKey:Dict_description];
         self.status = [decoder decodeObjectForKey:Dict_status];
         self.diagonisedDate = [decoder decodeObjectForKey:Dict_diagonisedDate];
         self.audModTs = [decoder decodeObjectForKey:Dict_audModTs];

    return self;
}


- (void)encodeWithCoder:(NSCoder *)encoder {


    [encoder encodeObject:self.patProbId forKey:Dict_patProbId];
    [encoder encodeObject:self.patientId forKey:Dict_patientId];
    [encoder encodeBool:self.visitId forKey:Dict_visitId];
    [encoder encodeBool:self.doctorId forKey:Dict_doctorId];
    [encoder encodeBool:self.description forKey:Dict_description];
    [encoder encodeBool:self.status forKey:Dict_status];
    [encoder encodeBool:self.diagonisedDate forKey:Dict_diagonisedDate];
    [encoder encodeBool:self.audModTs forKey:Dict_audModTs];



}

1 个答案:

答案 0 :(得分:0)

您正在编码Bool但解码对象。您需要为编码和解码使用相同的类型

编辑: 在评论中,您提到所有属性都是NSString类型,这很好,但在这种情况下,您需要将它们编码为Object

[encoder encodeBool:self.visitId forKey:Dict_visitId];

如您所见,您将它们编码为Bool,而不是对象。前两个属性都很好,这就是为什么它们工作,而其余属性被编码为Bool,这就是为什么他们不能工作

相关问题