2015-06-01 18 views
0

我剛剛知道很快,而且我沒有使用objective-c的經驗。下面是我想在我的SWIFT代碼 WebSocket.h使用的Objective-C類:obj-c的類自定義初始化工具不能很快顯示出來

#import <Foundation/Foundation.h> 
@class HTTPMessage; 
@class GCDAsyncSocket; 
#define WebSocketDidDieNotification @"WebSocketDidDie" 
@interface WebSocket : NSObject 
{ 
    dispatch_queue_t websocketQueue; 
    HTTPMessage *request; 
    GCDAsyncSocket *asyncSocket; 
    NSData *term; 
    BOOL isStarted; 
    BOOL isOpen; 
    BOOL isVersion76; 
    id __unsafe_unretained delegate; 
} 
+ (BOOL)isWebSocketRequest:(HTTPMessage *)request; 
- (id)initWithRequest:(HTTPMessage *)request socket:(GCDAsyncSocket *)socket; 

@property (/* atomic */ unsafe_unretained) id delegate; 
@property (nonatomic, readonly) dispatch_queue_t websocketQueue; 

- (void)start; 
- (void)stop; 

- (void)sendMessage:(NSString *)msg; 
- (void)sendData:(NSData *)msg; 
- (void)didOpen; 
- (void)didReceiveMessage:(NSString *)msg; 
- (void)didClose; 
@end 


@protocol WebSocketDelegate 
@optional 
- (void)webSocketDidOpen:(WebSocket *)ws; 
- (void)webSocket:(WebSocket *)ws didReceiveMessage:(NSString *)msg; 
- (void)webSocketDidClose:(WebSocket *)ws; 
@end 

和我上面的頭文件添加到XXXX-橋接-Header.h這樣

#import "WebSocket.h" 

但是當我想嘗試實例的WebSocket類我看不到任何自動完成初始化: enter image description here

+1

嘗試將該類重命名爲其他內容,例如'MyWebSocket'。這可能是名稱衝突。 – Sulthan

回答

1

我認爲你的問題就在於你是不是進口的依賴關係:

@class HTTPMessage; 
@class GCDAsyncSocket; 

是未知的斯威夫特因爲無論是橋接報頭或WebSocket.h是進口/包括他們。因此,在Swift中無法訪問使用它們的方法。

1

嘗試更換

- (id)initWithRequest:(HTTPMessage *)request socket:(GCDAsyncSocket *)socket; 

- (id)initWithRequest:(HTTPMessage *)request socket:(GCDAsyncSocket *)socket NS_DESIGNATED_INITIALIZER; 
+0

和以前一樣。沒有改變 :( – alizx

相關問題