В ObjC вызовы методов разрешаются динамически ( динамическое связывание ), что означает, что при выполнении [obj myMethod];
внутреннее программное обеспечение среды выполнения ObjC будет проходить через методы класса в этот момент и, если он найдет «myMethod», он вызовет его.
Также возможно добавлять методы к объекту во время выполнения.
Объявления методов в разделе @interface
предназначены только для того, чтобы помочь компилятору определить, какие методы общедоступны для данного класса. Если вы добавите метод только в свой @implementation
, компилятор может предупредить вас об этом, но код все равно будет компилироваться и работать.
Иногда я использую это для добавления внутренних методов к моим объектам, которые после этого вызываются только из других методов, а не извне. Хотя я не помню, чтобы я видел предупреждения об этом ... Убедитесь, что вызывающий код помещен после реализации метода в том же файле.