2016-03-25 4 views
0

В настоящее время я изучаю быстрые сериалы stanford ios для просмотра. Лектор упомянул в первом классе, что мы не должны использовать AnyObject. Мне просто интересно, в чем причина этого? Это плохая практика кодирования? или это связано с некоторыми другими причинами? Заранее благодарю за любую помощь!Почему мы не должны использовать AnyObject?

enter image description here

+1

Более строгий тип, тем больше ошибок компилятор может уловить (и вы не сработаете во время выполнения). – HAS

ответ

0

AnyObject означает любой вид класса (или типа ссылки) он похож на id в Objective-C. Это протокол, к которому все классы неявно соответствуют.
Проблема заключается в том, что компилятор не знает, какой объект он находится во время компиляции, это означает, что вы можете легко создать приложение, которое отправляет методы на неправильный объект.
Это обычно вызывает такое исключение на NSObject подклассах «unrecognized selector sent to instance XXXXXX» с крахом.
Swift любит сильную печать, это действительно полезно, потому что вы можете исправить проблемы до того, как они произойдут, но если вы определяете объект как AnyObject, это может быть все.

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