Словарь NSNetServiceFromTXTRecord не выполняет утверждение о недопустимом вводеIOS

Программируем под IOS
Ответить
Anonymous
 Словарь NSNetServiceFromTXTRecord не выполняет утверждение о недопустимом вводе

Сообщение Anonymous »

Ввод в словарь(fromTXTRecord:) поступает из сети, возможно, из-за пределов приложения или даже с устройства. Однако в документации Apple говорится:


... Утверждение не выполнится, если txtData не может быть представлено как объект NSDictionary.


В случае невыполнения утверждения программист (я) не сможет обработать ошибку, что кажется нелогичным для метода, обрабатывающего внешние данные.

Если Я запускаю это в Терминале на Mac:

Код: Выделить всё

dns-sd -R 'My Service Name' _myservice._tcp local 4567 asdf asdf
Мое приложение, работающее на iPhone, аварийно завершает работу.

Код: Выделить всё

dictionary(fromTXTRecord:)
ожидает данные записи TXT (

Код: Выделить всё

asdf asdf
) в форме key=val. Если, как указано выше, слово не содержит никаких символов =, метод не сможет его проанализировать и не выполнит утверждение.

Я не вижу другого способа решить эту проблему, кроме как вообще не использовать этот метод и реализовать свой собственный синтаксический анализ, что кажется неправильным.

Я что-то упускаю?

Подробнее здесь: https://stackoverflow.com/questions/401 ... alid-input
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»