Причина, по которой вы получаете Доступ к неизвестному методу класса 'ID' Сообщение об ошибке в том, что вы не объявили метод с именем ID в вашем классе RS232MsgGetEventDescriptions
.
Когда выскажем RS232MsgGetEventDescriptions.ID
в вашем коде, вы вызываете свойство ID
объекта RS232MsgGetEventDescriptions
, что эквивалентно [RS232MsgGetEventDescriptions ID]
.Однако RS232MsgGetEventDescriptions
- это не объект, а класс, и у вас нет метода класса с именем + (REMOTE_MESSAGE_ID)ID
в спецификации класса (вы не объявили его в интерфейсе или не реализовали в реализации класса).
Я также хотел бы отметить, что плохая практика использовать точечную запись для чего-то другого, кроме свойства.Поскольку классы не могут иметь @properties (это для объектов), вы должны вызывать этот метод, используя стандартную запись сообщений Objective C [RS232MsgGetEventDescriptions ID]
.
Xcode все еще позволит вам писать object.methodName
для вызова методов без параметров и object.methodName = value
для методов, которые принимают 1 параметр.Потому что они интерпретируются следующим образом:
object.methodName; // Becomes [object methodName]
object.methodName = value; // Becomes [object setMethodName:value]