objc_msgSend()
эффективно отбрасывает сообщения до nil
.Если метод имеет тип возврата не void
, он вернет что-то вроде nil
, то есть 0
, NO
или 0.0
, хотя это не всегда гарантируется для всех возвращаемых типов навсе платформы .Таким образом, единственные ошибки, с которыми вы, вероятно, столкнетесь, это когда ваш объект на самом деле не равен нулю (например, когда это ссылка на освобожденный объект) или когда вы не обрабатываете nil как возвращаемый тип надлежащим образом.
В вашем примере -count
возвращает NSUInteger
, поэтому значение i
будет 0
, поскольку objc_msgSend()
вернет 0
для сообщения на nil
, которое должно вернуть NSUInteger
.