-1

我正在关注一个简​​单的套接字教程,该教程是在没有考虑 ARC 的情况下编写的。我将教程中的想法注入到我的应用程序中,这一切都是在启用 ARC 的情况下编写的。

我遇到了这个特定代码行的问题:

CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)self.SERVER, self.PORT, &readStream, &writeStream);

在 ARC 下无法编译,所以我尝试了两种“修复它”,其中之一是:

CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)self.SERVER, self.PORT, &readStream, &writeStream);

但是这条线给我带来了一些问题。我的应用程序因内部调用“objc_msgsend”而崩溃,给我一个 exc_bad_access 错误。

关于如何为 ARC 修复这条线的任何想法?

编辑:我的调试技能在发布之前失败了。问题的原因不是上述原因,而是我的代码中的其他原因。我认为这与处理传入流有关。

4

2 回答 2

1

这行代码很好——你的方法的名称不是:SERVER应该是serverPORT同样如此。你绝对应该采用 Objective-C 编码风格。

于 2013-01-26T23:35:32.387 回答
1

正如尼古拉正确指出的那样,除了方法和属性的命名约定之外,我怀疑您没有保留您的流。

应该将strong它们声明为属性,您能否显示其余代码?

于 2013-01-26T23:45:57.013 回答