0

ブックアプリ内で複数のキャラクターダイアログを読んで表示する必要があります。文字ダイアログデータを次の形式でXML内に保存することを計画しています。

<?xml version="1.0" encoding="UTF-8"?>
<Pages>
    <Page Id="P1">
        <T>Once upon a time in the deep jungle of sunderbun there lived a lazy and wicked Jackal.Once upon a time in the deep jungle of sunderbun there lived a lazy and wicked Jackal.</T>
        <A>This is audio file location.This is audio file location.This is audio file location.</A>
        <Dlg>
            <Dlg Id="C1D1" P="L" X="" Y="" W="" H="">
                <T>This is Character 1 Dialogue 1.This is Character 1 Dialogue 1.</T>
                <A>This is audio file location.This is audio file location.</A>
            </Dlg>
            <Dlg Id="C1D2" P="R" X="" Y="" W="" H="">
                <T>This is Character 1 Dialogue 2.This is Character 1 Dialogue 2.</T>
                <A>This is audio file location.This is audio file location.</A>
            </Dlg>
            <Dlg Id="C2D1" P="L" X="" Y="" W="" H="">
                <T>This is Character 2 Dialogue 1.This is Character 2 Dialogue 1.</T>
                <A>This is audio file location.This is audio file location.</A>
            </Dlg>
        </Dlg>
    </Page>
    <Page Id="P2">
        <T>Once upon a time in the deep jungle of sunderbun there lived a lazy and wicked Jackal.Once upon a time in the deep jungle of sunderbun there lived a lazy and wicked Jackal.</T>
        <A>This is audio file location.This is audio file location.This is audio file location.</A>
        <Dlg>
            <Dlg Id="C1D1" P="R" X="" Y="" W="" H="">
                <T>This is Character 1 Dialogue 1.This is Character 1 Dialogue 1.</T>
                <A>This is audio file location.This is audio file location.</A>
            </Dlg>
            <Dlg Id="C2D1" P="L" X="" Y="" W="" H="">
                <T>This is Character 2 Dialogue 1.This is Character 2 Dialogue 1.</T>
                <A>This is audio file location.This is audio file location.</A>
            </Dlg>
            <Dlg Id="C2D2" P="R" X="" Y="" W="" H="">
                <T>This is Character 2 Dialogue 2.This is Character 2 Dialogue 2.</T>
                <A>This is audio file location.This is audio file location.</A>
            </Dlg>
        </Dlg>
    </Page>
</Pages>

XML構造からわかるように、複数のページがあり、すべてのページに複数の文字があり、各文字には複数のダイアログがあります。このXMLのサイズは約250KBになる可能性があります(iPhone / iPadには大きすぎるかどうかはわかりません)。GDataXMLを使用してこのXMLを解析し、次のモデルオブジェクトとして保存することを計画しています。

#import <Foundation/Foundation.h>

typedef enum {
    Left,
    Right
} DialoguePosition;

@interface Dialogue : NSObject{
    NSString *_id;
    int _frameX;
    int _frameY;
    int _frameWidth;
    int _frameHeight;
    DialoguePosition _dialoguePosition;
    NSString *_dialogueText;
    NSString *_dialogueAudioLocation;
}
@property (nonatomic, copy) NSString *id;
@property (nonatomic, assign) int frameX;
@property (nonatomic, assign) int frameY;
@property (nonatomic, assign) int frameWidth;
@property (nonatomic, assign) int frameHeight;
@property (nonatomic, assign) DialoguePosition dialoguePosition;
@property (nonatomic, copy) NSString *dialogueText;
@property (nonatomic, copy) NSString *dialogueAudioLocation;

- (id)initWithName:(NSString *)id frameX:(int)frameX frameY:(int)frameY frameWidth:(int)frameWidth frameHeight:(int)frameHeight dialoguePosition:(DialoguePosition)dialoguePosition dialogueText:(NSString *)dialogueText dialogueAudioLocation:(NSString *)dialogueAudioLocation;

@end

XMLの代わりにプロパティリストを使用する必要がありますか、それともXMLで問題ありませんか?ページIDとダイアログIDを渡して、ダイアログに簡単かつ迅速にアクセスする必要があります。これを実現するために、NSDictionary内にDialogueモデルオブジェクトを格納する必要がありますか、それとも他のより良い方法を使用する必要があります。私がとるべきアプローチについてのあなたの提案をいただければ幸いです。

4

0 に答える 0