Усечение основного сообщения при использовании символа ‘

#objective-c #ios #ios4 #ios-4.2

#objective-c #iOS #ios4 #ios-4.2

Вопрос:

У меня есть приложение для iPhone, которое отправляет электронную почту в приложении (используя MFMailComposeViewController) и SMS-сообщения (используя MFMessageComposeViewController).

Он отлично работает при отправке обоих типов сообщений, но я столкнулся со странной проблемой, когда последнее слово сообщения содержит символ ‘amp;’. Все, включая и после ‘amp;’, усекается при открытии в элементах управления электронной почтой / sms, встроенных в iPhone (контроллеры, о которых я упоминал выше). Я проиллюстрирую это несколькими примерами.

  • Отправка сообщения с текстом «Привет, мир» работает нормально.
  • Отправка сообщения с текстом «Привет и мир» приведет к усечению сообщения до «Привет».
  • Отправка сообщения с текстом «Привет, мир и d» приведет к усечению сообщения до «Привет, мир».
  • Отправка сообщения с текстом «Привет amp; мир amp; world» приведет к усечению сообщения до «Привет amp; мир».

Проблема с усечением появляется только в теле сообщения, а не в теме (этот пункт, очевидно, не применим к отправке SMS-сообщения).

Я проверил с помощью вывода NSLog, что сообщение действительно не усекается перед отправкой на контроллеры сообщений. Я также протестировал отображение сообщения с помощью UIAlertView, и там сообщение также не усекается.

Это ошибка в iOS или я просто упускаю что-то очевидное здесь?

Я разрабатываю с iOS SDK 4.3, и проблема была дублирована как на устройствах iPhone3GS, так и на устройствах iPad2.

Ответ №1:

Я подтвердил, что это была ошибка в iOS SDK 4.3. После обновления до iOS 5 проблема исчезла, поэтому я полагаю, что Apple исправила ошибку.