0

NSAttributedStringiOS14 での画像を含むをアーカイブNSTextAttachmentしましたが、iOS13 でのアーカイブ解除に失敗することに気付きました。iOS14では解凍に成功しています。

ログに記録されたエラーは次のとおりです。

Error decoding string object. error=Error Domain=NSCocoaErrorDomain Code=4864 
"value for key 'NS.objects' was of unexpected class 'NSTextAttachment'. Allowed classes are '{(
    NSGlyphInfo,
    UIColor,
    NSURL,
    UIFont,
    NSParagraphStyle,
    NSString,
    NSAttributedString,
    NSArray,
    NSNumber,
    NSDictionary
)}'." UserInfo={NSDebugDescription=value for key 'NS.objects' was of unexpected class 'NSTextAttachment'. Allowed classes are '{(
    NSGlyphInfo,
    UIColor,
    NSURL,
    UIFont,
    NSParagraphStyle,
    NSString,
    NSAttributedString,
    NSArray,
    NSNumber,
    NSDictionary
)}'.}

それを機能させるオプションはありますか、それとも私はここで運命づけられていますか?

これは、イメージが using に挿入されるNSMutableAttributedString方法NSTextAttachmentです。

// Add an image:
NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = image;
NSMutableAttributedString *strWithImage = [[NSAttributedString attributedStringWithAttachment:textAttachment] mutableCopy];

[s appendAttributedString:strWithImage];

これはアーカイブ行です:

NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str requiringSecureCoding:YES error:&error];

これは、NSErrorインスタンスを返すアーカイブ解除行です。

NSError *error = nil;
NSAttributedString *str = [NSKeyedUnarchiver unarchivedObjectOfClass:NSAttributedString.class fromData:data error:&error];

iOS14でインスタンスを作成NSDataし、ファイルに保存してiOS13で読み込みます。これは失敗したときです。

4

2 に答える 2