2015-04-02 3 views
0

Я использую Objective-c и apo какао какое-то время. Но я не знаю, какие методы в apos какао поднимут NSInvalidArgumentException, если я передам nil параметрам.Какие методы вызовут NSInvalidArgumentException?

Как я могу получить список, который все методы вызовут NSInvalidArgumentException и какой параметр не может быть nil. Официальные документы иногда не очень ясны, и информация децентрализована.

Как этот метод

NSData's -writeToURL:options:error:

Я знаю, что первый параметр не может быть нулевым, или это будет крах, но документ не сказать мне эту информацию. Как я могу знать во всех API-интерфейсах Cocoa, какие методы не могут получить параметр nil и будут вызывать NSInvalidArgumentException.

+0

Итак, реальный вопрос в первую очередь «Какие аргументы функции API принимают значения nil?» ? – clearlight

+1

Зачем вам нужен весь список? Не можете ли вы посмотреть отдельные страницы документации для любых классов, которые вы используете для понимания использования аргументов? – clearlight

ответ

1

Вы можете посмотреть декларацию Swift. Если это необязательно, то nil не допускается. Если это обычный необязательный (?), то nil явно разрешено. Если это неявно-развернутый необязательный (!), то вы не знаете. Например, для метода вы упомянули, -[NSData writeToURL:options:error:], Свифт декларация:

func writeToURL(_ aURL: NSURL, 
      options mask: NSDataWritingOptions, 
     error errorPtr: NSErrorPointer) -> Bool 

Тип NSURL (вместо NSURL? или NSURL!) указывает на то, что nil не допускается.

0

Посмотрите документацию Apple для метода, если nil принят для параметра, который будет указан в противном случае.

Единственное место, где вы не должны пропускать ноль, даже если оно будет принято, относится к параметрам ссылки на ошибку: ошибки не следует игнорировать.

Смежные вопросы