0
@interface Server : NSObject {
    id<ServerDelegate> _delegate;
    NSInputStream *_inputStream;
    NSOutputStream *_outputStream;
}

@property(nonatomic, assign) id<ServerDelegate> delegate;

每当我设置输入或输出流的委托时,我都会收到一条警告,指出它正在从不兼容的类型 Server* 分配给 id。

self.inputStream.delegate = self就是一个例子。

实际的服务器运行良好,这只是我担心的警告。

4

2 回答 2

1

如果您想将self( Serverobejct) 指定为 的委托NSInputStream,则您的Server对象必须符合NSStreamDelegate协议。

因为NSInputStream是一个子类NSStream

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSStream_Class/Reference/Reference.html#//apple_ref/occ/cl/NSStream

@interface Server : NSObject<NSStreamDelegate> 
[...]
@end
于 2013-02-04T20:25:28.130 回答
0

您需要使Server该类符合 NSStreamDelegate:

@interface Server : NSObject <NSStreamDelegate> {
    ... var declarations
}
于 2013-02-04T20:23:11.687 回答