То, что вы забыли сделать, это включить struct
в @interface
в качестве общедоступной переменной экземпляра:
@interface RMH2532MsgRequestSession : NSObject {
@public
struct RMH_REQUEST_SESSION_MSG st;
}
- (void) Open;
@end
А ваш @implementation
должен быть пустым:
@implementation RS232MsgRequestSession
@end
PS - Причина, по которой вы должны использовать @public
, заключается в том, что в xyz
вы выполняли прямое разыменование объекта с помощью оператора-члена ->
. Это не разрешено по умолчанию при работе с объектами Objective-C. Однако, если переменные экземпляра находятся под атрибутом @public
, у вас не возникнет проблем с этим.
Как вы уже могли догадаться, использование @public
является очень плохой идеей - обычно. Это нарушает инкапсуляцию и открывает ящик потенциальных проблем, которых у вас не было бы, если бы вы использовали правильную инкапсуляцию.