我正在使用FTP连接构建应用,我正在尝试使用SimpleFTPSample应用作为示例。我在我的应用程序中启用了ARC,而示例教程中没有禁用它。
由于使用ARC,我遇到了以下代码的问题:
url = [NSMakeCollectable (CFURLCreateCopyAppendingPathComponent
(NULL, (CFURLRef) url, (CFStringRef) self.dirNameText.text, true)
) autorelease];
1)删除NSMakeCollectable并自动释放后:
url = (CFURLCreateCopyAppendingPathComponent
(NULL, (CFURLRef) url, (CFStringRef) self.dirNameText.text, true));
现在我有三个ARC 投射错误: “Objective-C指针类型NSURL到C指针类型'CFURLRef(...)的情况需要一个桥接案例”和一个语义问题:“不兼容的指针类型从'CFURLRef'分配给'NSURL * __ strong'”。
正如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线程。
如果你知道我错过了什么,请告诉我! 感谢!!!
答案 0 :(得分:1)
您似乎根本不需要使用Core Foundation。试试这个:
url = [url URLByAppendingPathComponent:self.dirNameText.text isDirectory:YES];