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));
現在、3つのARCキャストエラーがあります:「Objective-Cポインタ型NSURLからCポインタ型へのケース'CFURLRef(...)にはブリッジケースが必要です」と1つのセマンティック問題:「互換性のないポインタ型が' NSURL *__strong'に割り当てられています'CFURLRef'"。
Xcodeが示唆しているように、変換には__bridgeを使用しますが、以下のコードでキャストエラーとセマンティックエラーのいずれかが発生します。
url = (CFURLCreateCopyAppendingPathComponent
(NULL, (__bridge CFURLRef) url,
(__bridge CFStringRef) self.dirNameText.text, true));
私は解決策を探していましたが、正確なものを見つけることができませんでした。このチュートリアルで見られるように、CFBridgingReleaseを使用してコードを変更しました。
url = CFBridgingRelease(CFURLCreateCopyAppendingPathComponent
(NULL, (__bridge CFURLRef) url,
(__bridge CFStringRef) self.dirNameText.text, true));
...しかし、アプリはまだEXC_BAD_ACCESSスレッドで壊れていました。
私が欠けているものを知っているなら、私に知らせてください!ありがとう!!!