2012-08-29 32 views
0

我與NSNetService工作結構,當我試圖解決一個服務,我得到了NSNetService對象包含的ID一個NSArray其描述struct sockaddr轉換ID轉換爲sockaddr在Objective-C

如何將NSArray中包含的id對象轉換爲結構sockaddr。這裏是我卡住的代碼。

- (void)netServiceDidResolveAddress:(NSNetService *)sender{ 

    //Obviously this row return an error... 
    struct sockaddr sk = (struct sockaddr)[sender.addresses objectAtIndex:0]; 
    .... 
} 
+0

「我知道其中包含結構sockaddr的一個NSArray一個NSNetService對象」現在,這是不太可能的。只有對象可以存儲在NSArray中。 – 2012-08-29 07:40:38

+0

@ H2CO3數組包含ID的對象的列表,但這些對象包含數據來描述的sockaddr。我需要一種方法將ID從ID轉換爲sockaddr。 – MatterGoal

+0

然後寫它包含描述結構sockaddr的對象,而不是它包含結構... – 2012-08-29 07:57:56

回答

2

數組包含NSData的對象,你可以轉換到結構,如:

struct sockaddr *sk = (struct sockaddr *)[[sender.addresses objectAtIndex:0] bytes]; 
+1

頭腦中投的指針類型! – 2012-08-29 07:57:22

+0

良好的通話。我應該添加這個代碼沒有以任何方式編譯或測試,但我希望它有幫助! –

+0

該結構包含一個名爲sa_data該參數是C字符串... 但如果我嘗試輸出它的內容,我得到空... '的NSLog(@「%@」,[的NSString stringWithCString:SK-Ⅱ> sa_data編碼:NSUTF8StringEncoding]);' – MatterGoal