3

かなり詳細な情報をメールで送信できるようにする機能をアプリに追加しています。HTML と CSS のスタイルを利用できるように、これを HTML 形式のメールとして送信したいと考えています。

私が取りたいアプローチは、入力するフィールドのプレースホルダーを使用してテンプレートを設計し、テンプレートを NSString にロードしてから、文字列置換を使用してプレースホルダーを実際のデータに変更することです。

次のような1つのhuuuuuuge行ではなく:

NSString *emailTemplate = [NSString stringWithFormat:@"<h1>TITLE</h1><hr noshade/><p>Here is the information about the thing that you are interested in. Find more from the table below:</p> . . ."]

これをよりエレガントな方法で行いたいと思います。テンプレートをファイルに書き込んでロードする必要がありますか? これを行う最善の方法は何ですか?

また、ローカライズ可能な方法でこれを行うにはどうすればよいですか?

ありがとう!

4

2 に答える 2

3

ローカライズ可能な方法でこれを行う最善の方法についてはわかりませんが、HTML を独自の .html ファイルに書き込み、そのファイルの内容をNSMutableStringオブジェクトに読み込むと、はるかに有益です。それが必要。

これを使用して行うことができます

+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error

このメソッドを使用する場合はmutableCopy、後で文字列を置換できるように、返された文字列を呼び出す必要があります。mutableCopyusing を使用すると新しいオブジェクトが返されることを忘れないでください。このオブジェクトは、使いNSMutableString終わったときに解放する必要があります。

次に、先に進んで使用できます

- (NSUInteger)replaceOccurrencesOfString:(NSString *)target withString:(NSString *)replacement options:(NSStringCompareOptions)opts range:(NSRange)searchRange

プレースホルダーをコンテンツに置き換える。

この方法の利点は、アプリのコードを変更することなく、WYSIWYG エディターまたはお気に入りの IDE を使用して HTML を簡単に編集できることです。この方法で、どのように見えるかをプレビューすることもできます.

于 2010-03-10T16:56:57.977 に答える