我是iPhone应用程序开发的初学者。我正在使用从RedPark获得的Dock到RS232电缆与外部硬件通信的应用程序。我自己写了最多的代码,但我仍然对几件事感到困惑。
我希望在我的应用程序中有多个视图,每个视图都有一个按钮,当按下按钮时,它会向硬件发送不同的命令。所以我创建了一个NSObject来处理发送部分。我的问题是如何正确调用该NSObject的send方法。 Communication.h
@interface Communication : NSObject<RscMgrDelegate>
{
RscMgr * rscMgr;
}
@property (nonatomic,retain)RscMgr *rscMgr;
- (void)sendRequest;
@end
Communication.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");
}
BTW,RscMgr是由RedPark提供的NSObject,它使用它们的库。 Singletest.m- (Communication *)communication{
if(!_communication){
_communication=[[Communication alloc]init];
}
return _communication;
}
- (IBAction)sendData:(id)sender{
[self.communication sendRequest];
NSLog(@"Send Data");
}
现在发生的事情是我第一次按下按钮,它确实发送了一个命令,但之后却没有。我想我还是犯了一个愚蠢的错误,因为我还在学习它。请让我知道。
谢谢。
答案 0 :(得分:0)
我会将Communication变成一个单例类,它负责实例化并保存指向RscMgr的指针,然后你可以做这样的事情
Communication* comm = [Communication sharedInstance];
[comm sendRequest];
您的sendRequest
将负责调用RscMgr
上所需的任何方法。注意,你需要编写sharedInstance
,如果你需要一个如何在Objective C中编写单例类的例子,请告诉我。