1

我是 iPhone 应用程序开发的初学者。我正在开发一个应用程序,该应用程序使用从 RedPark 获得的扩展坞到 RS232 电缆与外部硬件进行通信。我自己编写的代码最多,但我仍然对几件事感到困惑。

我想在我的应用程序中有几个视图,每个视图都有一个按钮,当按下按钮时,它会向硬件发送不同的命令。所以我创建了一个 NSObject 来处理发送部分。我的问题是如何正确调用该 NSObject 的发送方法。通讯.h

@interface Communication : NSObject<RscMgrDelegate>
{
    RscMgr * rscMgr;
}
@property (nonatomic,retain)RscMgr *rscMgr;
- (void)sendRequest;
@end

通讯.m

@synthesize rscMgr=_rscMgr;
- (void)sendRequest{
if (!_rscMgr) {
    rscMgr = [[RscMgr alloc]init];
    [rscMgr setDelegate:self];
}

UInt8 sendData[4]={0x8E,0x8E,0x05,0x80};
[rscMgr write:sendData Length:4];
NSLog(@"sending request");

}

顺便说一句,RscMgr 是 RedPark 提供的使用他们的库的 NSObject。单测.m

- (Communication *)communication{
if(!_communication){
    _communication=[[Communication alloc]init];
}
return _communication;
}
- (IBAction)sendData:(id)sender{
[self.communication sendRequest];
NSLog(@"Send Data");
}

现在发生的是我第一次按下按钮时,它确实发送了一个命令,但之后没有。我想我只是犯了一个愚蠢的错误,因为我还在学习它。请告诉我。
谢谢你。

4

1 回答 1

0

我会把 Communication 变成一个单例类,负责实例化和保存指向 RscMgr 的指针,然后你可以做这样的事情

Communication* comm = [Communication sharedInstance];
[comm sendRequest];

然后,您sendRequest将负责调用所需的任何方法RscMgr。请注意,sharedInstance您必须编写,如果您需要一个如何在 Objective C 中编写单例类的示例,请告诉我。

于 2012-07-05T21:52:17.270 回答