iOS: может ли openURL быть нулевым? - PullRequest
2 голосов
/ 07 июня 2011

Для -[UIApplicationDelegate application:openURL:sourceApplication:annotation:], может ли URL быть когда-либо nil?Я спрашиваю, потому что я видел, как кто-то поставил чек if (url) // ..., но разве это не нужно?Т.е. этот метод не всегда вызывается с аргументом, отличным от nil NSURL для openURL?

Ответы [ 2 ]

2 голосов
/ 07 июня 2011

Согласно документации Apple, параметр url:

Объект, представляющий URL (универсальный Resource Locator). Смотрите Apple URL Справочник по схемам для Apple-зарегистрированных схемы для URL.

Вы должны зарегистрировать свое приложение, чтобы принимать определенные URL.
Эта статья показывает, как это делается.

Это привело бы меня к мысли, что этот метод не будет вызван, если он не будет соответствовать схеме URL, указанной приложением.

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

2 голосов
/ 07 июня 2011

Предполагая внешний вызов (т. Е. Из другого приложения, пытающегося открыть ваше), я бы предположил, что это не ноль, однако, возможно (маловероятно, я знаю), вы вызываете его внутри, и в этом случае это может быть?

Предположения, однако, опасны!

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

Кажется, хорошо, чтобы проверить, если вы спрашиваете меня.

...