2016-09-13 8 views

答えて

0

ブロックはスコープ内に存在します。スコープがまだアクティブであるか、またはコピーされている場合に限り有効です。一旦コピーされると、コピーは永遠に有効なままです。ブロックをコピーすることはそれを保持することと同じではないため、XcodeはARCの代わりにエラーを返します。 「なぜブロックコピー自体は、まったく無関係な質問ではないのですか?そうではありません。そうです。自分でコピーしなければなりません。

これは、ブロックプロパティを「コピー」する理由です。ブロックをgcdに渡すことは問題ありません。必要に応じてgcdがブロックをコピーするからです。

+0

しかし、ARCから始めて、clangはローカルスコープから出るブロックを自動的に(保持しないで)コピーすることを約束しました。私は今の文書でそれを見つけることができませんが、私はかなり確信しています。 –

関連する問題