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