私は数週間前にobjective-cとiOSを開始しました(覚えておく価値があります)、そしてひどい図を前もってお詫びします!!
上の図は、Webサービスへの呼び出しの構造を示しています。細い矢印は、別のオブジェクトを作成するオブジェクトを示し、太い矢印は、ポイントされたオブジェクトへの強い(保持された)参照を保持しているオブジェクトを示します。
これにはいわゆる「循環参照」が含まれており、オブジェクトの割り当てを解除する際に問題が発生すると思います。
私のプロジェクトがiOS3.2もターゲットにしていることを除いて、簡単な答えは弱いものへの強い参照のいくつかを置き換えることであることを理解しています(私の決定ではありません-この事実を実際に変更することはできません!) 。したがって、代わりに__unsafe_unretainedを使用する必要があると言っているのは正しいと思いますが、オブジェクトの割り当てが解除されるとEXC_BAD_ACCESSの問題が発生するため、これらが自動ゼロ化されないという事実についてはかなり心配しています。 ..
したがって、私の問題は、最初に循環参照があることです。解決するには、__ unsafe_unretainedを使用する必要があります。これは、2番目の問題につながります。これらを正しく管理するにはどうすればよいですか。
関連する可能性のある質問は次のとおりです。NSURLConnectionはその強力な参照をどのように管理しますか?さまざまな情報源から、代理人を保持していると聞いたことがありますか?したがって...NSURLConnectionを保持し(そしてそのデリゲートでもあり)、それが私を保持している場合、これも循環参照になりますね?それは私の問題をどのように回避しますか?
どんなアドバイスも大歓迎です!
よろしく、ニック