Словарь 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

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