2012-07-05 29 views
1

我是iPhone應用程序開發的初學者。我正在開發一個應用程序,它使用從RedPark獲得的RS232電纜與外部硬件進行通信。我自己寫了最多的代碼,但我仍然對幾件事情感到困惑。在NSObject中調用方法

我想在我的應用程序中有幾個視圖,每個視圖都有一個按鈕,當按下按鈕時,它向硬件發送不同的命令。所以我創建了一個NSObject來照顧發送部分。我的問題是如何正確調用該NSObject的發送方法。 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"); 

}

順便說一句,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

我會變成傳播到一個單例類,這是負責實例化和保持指針RscMgr,那麼你可以做這樣的事情

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

sendRequest然後將負責調用需要什麼方法在RscMgr。請注意,您必須編寫sharedInstance,如果您需要一個如何在Objective C中編寫單例類的示例,請告訴我。

+0

我提供了更多的代碼來解釋我的問題。你能舉個單身課的例子嗎?謝謝。 – user1491987 2012-07-05 21:56:51

+0

是的,今天晚上我會舉一個例子 - 現在仍在辦公室:-) – Joe 2012-07-05 22:08:13

+0

非常感謝。順便說一句,你能告訴我,如果我在我的代碼中做錯了什麼嗎? – user1491987 2012-07-05 22:45:26