1
我正在建立一个FTP连接的应用程序,我试图使用SimpleFTPSample应用程序作为示例。我在我的应用中启用了ARC,但在示例教程中未禁用它。除去NSMakeCollectable和自动释放后如何在启用ARC的情况下正确使用CFURLCreateCopyAppendingPathComponent?
url = [NSMakeCollectable (CFURLCreateCopyAppendingPathComponent
(NULL, (CFURLRef) url, (CFStringRef) self.dirNameText.text, true)
) autorelease];
1):
由于使用ARC,我遇到了一个问题,与follwing代码
url = (CFURLCreateCopyAppendingPathComponent
(NULL, (CFURLRef) url, (CFStringRef) self.dirNameText.text, true));
现在我有三个ARC 转换错误 : “Objective-C指针类型NSURL到C指针类型'CFURLRef(...)需要桥接案例”和一个语义问题:“从'CF分配给'NSURL * __ strong'的不兼容指针类型URLRef'”。
由于Xcode的建议,我用__bridge的转换,但我仍然有决定性的错误之一,可与下面的代码的语义错误:
url = (CFURLCreateCopyAppendingPathComponent
(NULL, (__bridge CFURLRef) url,
(__bridge CFStringRef) self.dirNameText.text, true));
我一直在寻找一个解决方案,但可以没有找到一个确切的适合。我修改使用CFBridgingRelease在本tutorial看到我的代码:
url = CFBridgingRelease(CFURLCreateCopyAppendingPathComponent
(NULL, (__bridge CFURLRef) url,
(__bridge CFStringRef) self.dirNameText.text, true));
...但应用程序仍与EXC_BAD_ACCESS线断裂。
如果你知道我错过了什么,请告诉我! 谢谢!
Rob,感谢您的回复!事实上,这两个代码完美工作。我在我的代码中有一个委托问题,并且self.dirName.text是零,所以这就是它破裂的原因。 – jeroandris 2012-04-16 20:10:51