4

iOS 10でアトミックブール値を作成する方法を知っている人はいますか?

現在のコード:

import UIKit

struct AtomicBoolean {
    fileprivate var val: UInt8 = 0

    /// Sets the value, and returns the previous value.
    /// The test/set is an atomic operation.
    mutating func testAndSet(_ value: Bool) -> Bool {
       if value {
           return OSAtomicTestAndSet(0, &val)
       } else {
           return OSAtomicTestAndClear(0, &val)
       }
    }

    /// Returns the current value of the boolean.
    /// The value may change before this method returns.
    func test() -> Bool {
      return val != 0
    }
}

コードは期待どおりに機能しますが、警告が表示され続けます:

'OSAtomicTestAndSet' was deprecated in iOS 10.0: Use atomic_fetch_or_explicit(memory_order_relaxed) from <stdatomic.h> instead

atomic_fetch_or_explicit(memory_order_relaxed) で動作させることができません。

この警告を取り除くために、現在のコードを iOS 10 に変換する方法を知っている人はいますか?

ありがとうございました!

4

3 に答える 3