Инициализация строк NSSt с большими постоянными строками HTML - PullRequest
0 голосов
/ 13 августа 2011

У меня есть большая постоянная HTML-строка, которую я хотел бы отобразить в моем UIWebView.По какой-то причине, когда я пытаюсь использовать константную строку (с @ "LARGE_STRING"), я получаю некоторые странные ошибки, говоря, что у меня неожиданный '@' в начале, что я пропускаю завершающие символы '' ', что я использую undeclaredвыражения и т. д. дело в том, что я экранирую строку, по крайней мере, "" "в ней.

Что мне здесь не хватает?Tnx!

Редактировать: Пример:

NSString *myString = [NSString stringWithString:@"<title>בסיסי HTML לימוד</title> <META http-equiv="Content-Type" content="text/html; charset=iso-8859-8"> <body  bgcolor="#b5deef"bbackground="gifs/rekablue.gif"> <center> <table border=0 cellpadding=0 cellspacing=0> <tr> <td> <table border=0 cellpadding=0 cellspacing=0> <tr> <td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="246"></td> <td><img src="gifs/lim.gif"></td><td width="50"></td><td><a href="basic1.htm"><img src="gifs/hak.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr>  <td width="230"></td> <td><img src="gifs/m.gif"></td><td width="55"></td><td><a href="basic2.htm"><img src="gifs/ktiv.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="207"></td> <td><img src="gifs/ud.gif"></td><td width="60"></td><td><a href="basic2.htm"><img src="gifs/amud.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="163"></td> <td><img src="gifs/tl.gif"></td><td width="55"></td><td><a href="basic2.htm"><img src="gifs/reshon.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="133"></td> <td><img src="gifs/ml.gif"></td><td width="55"></td><td><a href="basic3.htm"><img src="gifs/text1.gif" border=0></a></td>  </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="108"></td> <td><img src="gifs/t.gif"></td><td width="35"></td><td><a href="basic4.htm"><img src="gifs/kish.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="93"></td> <td><img src="gifs/h.gif"></td><td width="35"></td><td><a href="basic5.htm"><img src="gifs/reshim1.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="70"></td> <td><img src="gifs/b.gif"></td><td width="42"></td><td><a href="basic6.htm"><img src="gifs/tmunot.gif" border=0></a></td> </tr></table> <tr><td>  <table border=0 cellpadding=0 cellspacing=0><tr> <td width="40"></td> <td><img src="gifs/s.gif"></td><td width="53"></td><td><a href="basic7.htm"><img src="gifs/rekaim1.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="10"></td> <td><img src="gifs/s1.gif"></td><td width="45"></td><td><a href="basic9.htm"><img src="gifs/tfasim.gif" border=0></a></td> </tr></table> <tr><td> <table border=0 cellpadding=0 cellspacing=0><tr> <td width="8"></td> <td valign=top><img src="gifs/si.gif"></td><td width="30"></td><td><a href="basic8.htm" border=0><img src="gifs/tavlaot.gif" border=0></a></td> </tr></table> </td></tr> </table> </td>  <td valign=bottom><a href="default.htm" onMouseOver="self.status='חזרה לעמוד פתיחה';return true" onMouseOut="self.status='';return true"><img src="gifs/shtml11.gif" border=0></a>   <a href="bm_guide.htm#html" onMouseOver="self.status='אתרים נוספים';return true" onMouseOut="self.status='';return true"><img src="gifs/shtml10.gif" border=0></a></td></tr></table> </center> </body>"];

1 Ответ

2 голосов
/ 13 августа 2011

Если в строке есть «символы», вы должны их экранировать:

    NSString *myString = @"This string contains \"quotes\". If they are not \"escaped\", that will cause errors".

Или, еще одна возможность, вы используете #defines, как

#define LARGE_STRING "This is an extremely large string (well, OK, not so large)"

Тогда вы должны сделать

#define LARGE_STRING @"This is an extremely large string (well, OK, not so large)"

и

    NSString *myString = LARGE_STRING;

Редактировать

Хммм ... твой пример выглядит хорошо. Он должен компилироваться, если он действительно содержит коды " в стиле HTML, а не жестко закодированные символы ". Просто убедитесь, что ваша строка (она действительно длинная) не обернута жесткими переводами строки.

Я только что попробовал, и ваш пример прекрасно компилируется в Objective-C (Xcode 4.1). Обратите внимание, что если вы попытаетесь передать такую ​​строку в функцию C, она должна быть сначала преобразована в допустимую строку C.

...