使用ARC转换为CFStringRef会崩溃iphone应用程序

时间:2013-01-26 23:27:09

标签: iphone objective-c xcode sockets

我正在关注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修复此行的任何想法吗?

编辑:我的调试技巧在发布之前就失败了。问题的原因不是上面提到的原因,而是我的代码中的其他内容。我认为它与处理传入的流有关。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

如果它们是属性,则应声明为strong,是否可以显示其余代码?