Ich habe einen Netzwerkcode, der NSStream verwendet, und ich möchte Sicherheit hinzufügen. Ich habe versucht, die Dokumentation zu diesem Thema anzuwenden. Ich habe die folgenden Zeilen zu meinem funktionierenden Netzwerkcode hinzugefügt:
[input setValue:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];
[output setValue:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];
Der Initialisierungscode ist:
-(Connection*) initWithInput:(NSInputStream*) input Output:(NSOutputStream*) output Delegate: (id ) delegate{
self = [super init];
if (self) {
a_delegate=delegate;
//set security
[input setValue:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];
[output setValue:NSStreamSocketSecurityLevelNegotiatedSSL forKey:NSStreamSocketSecurityLevelKey];
a_input=input;
a_output=output;
//Set delegate to self
[a_input setDelegate:self];
[a_output setDelegate:self];
//Schedule in run loop
[a_input scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[a_output scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
//open streams
[a_input open];
[a_output open];
}
return self;
}
Aber wenn mein Connection-Objekt initialisiert wird, erhalte ich eine Fehlermeldung und das Netzwerk funktioniert nicht:
[<__NSCFInputStream 0x60800028e970> setValue:forUndefinedKey:]:
this class is not key value coding-compliant for the key kCFStreamPropertySocketSecurityLevel.
Mache ich etwas falsch?