3

我正在向我的应用程序添加功能,允许它通过电子邮件发送一些相当详细的信息。我想将此作为 HTML 格式的电子邮件发送,以便我可以利用 HTML 和 CSS 样式。

我想采用的方法是为要填写的字段设计带有占位符的模板,将模板加载到 NSString 中,然后使用字符串替换将占位符更改为实际数据。

而不是一个 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

NSMutableString我不确定以可本地化的方式执行此操作的最佳方法,但是将 HTML 写入它自己的 .html 文件并在您将文件的内容读入对象时会更有益需要它。

您可以使用

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

如果使用此方法,则需要调用mutableCopy返回的字符串,以便稍后进行字符串替换。不要忘记 usingmutableCopy将返回一个新NSMutableString对象,当你完成它时你将负责释放它。

然后你可以继续使用

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

用您的内容替换占位符。

这样做的好处意味着您可以使用所见即所得的编辑器或您喜欢的 IDE 轻松编辑 HTML,而无需更改应用程序中的代码。您还可以通过这种方式更轻松地预览它的外观。

于 2010-03-10T16:56:57.977 回答
0

看看 Matt Gemmell 的实现,MGTemplateEngine。它适用于 OS X 和 iOS。原版似乎只托管在 SVN 上,所以有人git-svn'ed 到 Github

我需要在编译之前修改构建设置,但它就像一个魅力并且非常强大(确实,比我强大得多,而且可能你也需要)。

于 2013-03-13T21:48:58.133 回答