1

iPhoneアプリ開発初心者です。RedPark から入手したドックと RS232 ケーブルを使用して、外部ハードウェアと通信するアプリに取り組んでいます。ほとんどのコードを自分で書きましたが、まだいくつかの点で混乱しています。

アプリにいくつかのビューが必要で、各ビューにはボタンがあり、ボタンを押すとハードウェアに異なるコマンドが送信されます。そこで、送信部分を処理するために NSObject を作成します。私の質問は、その NSObject の send メソッドを適切に呼び出す方法です。コミュニケーション.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、で必要なメソッドを呼び出す責任がありますRscMgrsharedInstanceObjective Cでシングルトンクラスを作成する方法の例が必要な場合は、書く必要があることに注意してください。

于 2012-07-05T21:52:17.270 に答える