1
[NSKeyedArchiver archivedDataWithRootObject:dataArray]を使用して画像と文字列で構成されるモデルを含む配列を保存しようとしています。このメソッドは、このメソッドを呼び出す回数が2〜3回になるとnilを返します。 これは、アーカイブしようとしているモデルに画像が含まれている場合にのみ発生します。 データ配列がnilでないことを確認しました。NSKeyedArchiver archivedDataWithRootObject画像モデルの配列が渡されたときにnilを返します
@implementation ImagesModel
- (id)initWithCoder:(NSCoder *)coder{
if(self = [super init]){
self.image = [[UIImage alloc]initWithData:[coder decodeObjectForKey:@"image"]];
self.urlString = [coder decodeObjectForKey:@"urlString"];
}
return self;
}
- (void)encodeWithCoder:(NSCoder *)coder
{
[coder encodeObject:UIImagePNGRepresentation(self.image) forKey:@"image"];
[coder encodeObject:self.urlString forKey:@"urlString"];
}
+ (NSDictionary *)getObjectMapper {
if (!mapperDictionary) {
NSMutableDictionary *dictionary = [NSMutableDictionary dictionary];
[dictionary setObject:[PropertyMapping mappingForSimpleTypeWithMappedKeyName:@"image"] forKey:@"image"];
[dictionary setObject:[PropertyMapping mappingForSimpleTypeWithMappedKeyName:@"urlString"] forKey:@"urlString"];
mapperDictionary = [dictionary copy];
}
return mapperDictionary;
}
- (NSData)ArchiveData {
if (!dataArray){
return NO; //nothing to save
}
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:dataArray]; //Return Nil
}
データアレイには何が含まれていますか? – Mario
モデルを含み、各モデルは画像と文字列で構成されています。 –
私は、それはどこに設定されているのですか? – Mario