0

どうすればこれを行うことができますか?NSData をマージするだけではうまくいかないことはわかっています。

4

1 に答える 1

2

NSAttributedStringでの再生は、以下に示すコードのように機能するはずです。

これは、多くのRTFファイルをマージするための非常に迅速で汚い方法です。

- (void)mergeRTF:(NSURL*)rtf1 :(NSURL*)rtf2 :(NSURL*)merged {
    NSMutableDictionary *options = [NSMutableDictionary dictionary];
    [options setObject:[NSNumber numberWithUnsignedInteger:NSUTF8StringEncoding]
                forKey:NSCharacterEncodingDocumentOption];
    NSDictionary *docAttrs = nil;
    NSError* error = nil;

    NSAttributedString *rtfText1 = [[NSAttributedString alloc] initWithURL:rtf1
                                                               options:options
                                                    documentAttributes:&docAttrs
                                                                 error:&error];

    NSAttributedString *rtfText2 = [[NSAttributedString alloc] initWithURL:rtf2
                                                                options:options
                                                     documentAttributes:&docAttrs
                                                                  error:&error];
    NSMutableAttributedString* whole = [[NSMutableAttributedString alloc] initWithAttributedString:rtfText1];
    [whole appendAttributedString:rtfText2];
    NSData* data = [whole RTFFromRange:NSMakeRange(0, whole.length) documentAttributes:nil];

    [data writeToURL:merged atomically:YES];
}
于 2012-12-23T19:16:10.227 に答える