Objective c 方法调用-Cocoa/Obj-C
我在学可可。。。 我试着用不同的方法去做,但我仍然是在黑暗中 我在实现中使用了以下方法:Objective c 方法调用-Cocoa/Obj-C,objective-c,macos,cocoa,Objective C,Macos,Cocoa,我在学可可。。。 我试着用不同的方法去做,但我仍然是在黑暗中 我在实现中使用了以下方法: - (void)closeStream:(NSStream *)theStream { [theStream close]; [theStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode]; } 如何从@synthetize中的iAction调用它 - (IBAction
- (void)closeStream:(NSStream *)theStream {
[theStream close];
[theStream removeFromRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}
如何从@synthetize中的iAction调用它
- (IBAction)connect:(id)sender {
if ([[connectNOK stringValue] isEqualToString:@"Disconnected"]) {
[connectButton setTitle:@"Disconnect"];
NSString * hostFromField = [hostField stringValue];
CFReadStreamRef readStream;
CFWriteStreamRef writeStream;
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)hostFromField, [portField intValue], &readStream, &writeStream);
inputStream = (NSInputStream *)readStream;
outputStream = (NSOutputStream *)writeStream;
[inputStream setDelegate:self];
[outputStream setDelegate:self];
[inputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[outputStream scheduleInRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
[inputStream open];
[outputStream open];
} else {
[connectButton setTitle:@"Connect"];
// I want to call this method here
}
}
如果
closeStream:
方法是在与connect:
方法相同的类中定义的,则必须使用:
[ self closeStream: someStream ];
其中someStream
是您需要传递的NSStream
对象
self
关键字引用类的当前实例。如果您不知道这一点,或者不知道这意味着什么,我建议您在尝试编写任何代码之前,或者在编写代码之后,先看看 编辑: 我可以在您的代码中看到,您的
连接:
方法«切换»基于按钮标签的值进行连接
要知道,这不是一个很好的设计,但这里还有其他问题
如果需要,我想您应该关闭输入和输出流。问题是,当第二次调用
connect
方法时,inputStream
和outputStream
变量就不再可以访问了
您可能需要将它们存储为,以便以后可以引用它们
再一次,您似乎真的应该先阅读一些关于编程原则的文档,以及一些面向对象的编程原则。不要走得太快。知识是一切的关键,因此请阅读我前面提到的文档。如果
closeStream:
方法是在同一类中定义的,而不是connect:
方法,那么您必须使用:
[ self closeStream: someStream ];
其中someStream
是您需要传递的NSStream
对象
self
关键字引用类的当前实例。如果您不知道这一点,或者不知道这意味着什么,我建议您在尝试编写任何代码之前,或者在编写代码之后,先看看 编辑: 我可以在您的代码中看到,您的
连接:
方法«切换»基于按钮标签的值进行连接
要知道,这不是一个很好的设计,但这里还有其他问题
如果需要,我想您应该关闭输入和输出流。问题是,当第二次调用
connect
方法时,inputStream
和outputStream
变量就不再可以访问了
您可能需要将它们存储为,以便以后可以引用它们
再一次,您似乎真的应该先阅读一些关于编程原则的文档,以及一些面向对象的编程原则。不要走得太快。知识是一切的关键,所以请阅读我前面提到的文档。这是完整的语言规范。对于新手来说,最好从开始。你说得很对,谢谢:)也用你的链接更正了我的答案。这是完整的语言规范。对于新手,最好从开始。你完全正确,谢谢:)也用你的链接更正了我的答案。