我正在尝试使用MFMailComposeViewController编写电子邮件,并且正在使用绘制表的HTML字符串。它有265个参数,因此我必须像这样传递它:

[mailViewController setMessageBody:
[NSString stringWithFormat:NSLocalizedString(@"EMAIL_HTML_KEY", nil),

                                                date,

                                                object.foo[0],

                                                [object.bar[0] objectAtIndex:0],

                                                [object.bar[0] objectAtIndex:1], ... ...


当我运行该应用程序时,它始终因EXC_BAD_ACCESS错误而挂起。根据调试器中显示的列表,它仅在NSDescriptionWithLocaleFunc之后的objc_msgSend处停止,因此看来我的字符串存在问题。事情是...没有。我仔细检查了两个部分(字符串本身和参数列表),它们都没问题,所以我尝试剪切字符串以查看问题出在哪里,我发现只有在字符串足够大时才出现错误。

String =“ 123456”->错误

String =“ 123”->确定

String =“ 234”->确定

String =“ 456”->确定

因此,似乎HTML字符串格式正确,参数列表正确。我只能想象的是,我可以发送给使用stringWithFormat创建的NSString的参数数量是有限的。这样对吗?。我将拆分字符串,但是,作为HTML代码,我必须将其作为单个字符串传递给mailViewController。

有什么建议吗?我想念什么?

最佳答案

为了您的标题...不。您可以输入任意数量的参数。

我可以看到

[mailViewController setMessageBody:NSString stringWithFormat:NSLocalizedString


应该是

[mailViewController setMessageBody:[NSString stringWithFormat:NSLocalizedString


并且您应该将mutalbeString与appendString一起使用,并且可以执行循环,因为您的索引被视为从0变为1。

07-24 09:45
查看更多