なぜxcodeに「ローカルスタックにあるブロックを返す」というエラーが表示されますか?
なぜxcodeがARCでそのエラーを表示するのか理解できません。 ARCでは、なぜブロックコピー自体は自動的に行われませんか?
なぜxcodeに「ローカルスタックにあるブロックを返す」というエラーが表示されますか?
なぜxcodeがARCでそのエラーを表示するのか理解できません。 ARCでは、なぜブロックコピー自体は自動的に行われませんか?
ブロックはスコープ内に存在します。スコープがまだアクティブであるか、またはコピーされている場合に限り有効です。一旦コピーされると、コピーは永遠に有効なままです。ブロックをコピーすることはそれを保持することと同じではないため、XcodeはARCの代わりにエラーを返します。 「なぜブロックコピー自体は、まったく無関係な質問ではないのですか?そうではありません。そうです。自分でコピーしなければなりません。
これは、ブロックプロパティを「コピー」する理由です。ブロックをgcdに渡すことは問題ありません。必要に応じてgcdがブロックをコピーするからです。
しかし、ARCから始めて、clangはローカルスコープから出るブロックを自動的に(保持しないで)コピーすることを約束しました。私は今の文書でそれを見つけることができませんが、私はかなり確信しています。 –
これはObjective-Cですか?それはちょうど私には普通のCのように見えます。 CにはARCはありません。 – newacct