我正在关注simple socket tutorial,其中没有考虑ARC。我正在将教程中的想法注入到我的应用程序中,该应用程序都是在启用ARC的情况下编写的。
我遇到了这个特定代码行的问题:
CFStreamCreatePairWithSocketToHost(NULL, (CFStringRef)self.SERVER, self.PORT, &readStream, &writeStream);
在ARC下没有编译的,所以我尝试了两个'fix-it',其中一个是:
CFStreamCreatePairWithSocketToHost(NULL, (__bridge CFStringRef)self.SERVER, self.PORT, &readStream, &writeStream);
然而这条线路引起了一些问题。我的应用程序崩溃似乎是一个内部调用'objc_msgsend'给我一个exc_bad_access错误。
有关如何为ARC修复此行的任何想法吗?
编辑:我的调试技巧在发布之前就失败了。问题的原因不是上面提到的原因,而是我的代码中的其他内容。我认为它与处理传入的流有关。
答案 0 :(得分:1)
代码行很好 - 您的方法的名称不是:SERVER
同样应该是server
和PORT
。你绝对应该采用Objective-C编码风格。
答案 1 :(得分:1)
除了方法和属性的命名约定之外,正如尼古拉正确指出的那样,我怀疑你没有保留你的流。
如果它们是属性,则应声明为strong
,是否可以显示其余代码?