retain-cycle

    0

    1答えて

    私はしばらくMacOSプロジェクトでSwiftのアウトレットコレクションを使用しようとしてきましたが、これは現時点では不可能であることを学んだだけです。私はまだ困惑しているのですが、これはある時点で修正されていると推測しています。 私はコンセントは一般のサイクルを保持防ぐために、「根」コンセントを除き、弱いでなければならないことを理解する: @IBOutlet weak var someButto

    5

    3答えて

    これは漏れない理由を説明できますか? closureの中にselfをキャプチャしているので、2つの強力なポインタが互いに指しているので、deinitメッセージはPersonオブジェクトに対して呼び出されるべきではありません。 まず、これは人私のクラスです: class Person { var name: String init(name: String) { self.nam

    0

    2答えて

    私のクラスの1つでは、デリゲートの配列を使用しています(クラスはシングルトンです)。これは保持サイクルを引き起こしています。デリゲートを弱くしてデリゲートを1つだけ使用すると、保持サイクルを回避できます。しかし、これは私の代理人の配列では機能しません。 どうすればこの保持サイクルを回避できますか。 例: protocol SomeDelegate: class { func someFu

    -1

    1答えて

    あなたのプログラムに保持サイクルが存在するかどうかを簡単に知る方法があるかどうかは疑問でした。また、タイプ(変数やクロージャなど)によっては、これらの保持サイクルがどこに存在するかを知っていれば、どうすればそれらを弱くすることができます。私は自分自身(私のGameScene)ですべての保持サイクルを停止して、もはやそれを必要としないときに割り当てを解除し、再起動したいと思う必要があります。 ヒント

    3

    2答えて

    間のサイクルを保持します。しかし、クラスと構造体の違いが上記の例にどのように当てはまるかは私には分かりません。保持サイクルを引き起こすか、structの使用のために安全なコードですか?

    1

    1答えて

    私はブロックをパラメータとして受け入れる関数を持っています。末尾のクロージャを使用してコードブロックを渡すことはできますが、クロージャはselfを保持するときにweak参照を使用する必要があります。 例えば、MyClass2の初期化を参照してください。 class MyClass { func subscribe(using block: @escaping() -> Void) {

    0

    1答えて

    を保持し、私は別の会社からプロジェクトを引き継いだし、変数に値を割り当てるときに、私は多くの場合、コードのこの部分を参照してください。 // interface: @property NSArray *foos; // somewhere in implementation: BOOL foosExist = ^BOOL { return self.foos.count > 0

    0

    2答えて

    これはかなりシンプルですが、私は何か不足していると確信しています。 私は以下を達成する方法を理解しようとしています。actionは、コードブロックを「ホールド」して、最終的にUIView.animate(たとえば)内で実行する必要があります。 正しい方法はありますか? + action閉鎖中に保持サイクルの面でself.を使用することについて心配する必要がありますか? サンプル機能: func f

    1

    1答えて

    私は反応性ココアのブロックで象牙を使用し、弱化(自己)と強く(自己)に設定して保持サイクルを破る。しかし、コードを実行すると、メモリリークが発生し、コントローラはdeallocメソッドを呼び出さない。私がivarを不動産に変更すると、それは正しく実行されます。私はそれについて非常に混乱しており、長い間検索しています。どうしてか言ってくれない。 - (void)viewDidLoad {

    1

    1答えて

    申し訳ありませんが、これは本当にばかばかしい質問で、私はすでに回答を「知っています」が、私には明らかにその答えが何であるかを私に説明する人が必要です。 最近、さまざまなメモリ問題で悪夢のようなデバッグを行った後、私のコードでサイクルとメモリリークを保持することに少し執着してしまうようになってしまいました。しかし、ARCについて多くのことを読んで学び、Swiftのサイクルを維持した後は、理にかなって