SwiftでmacOSのバージョン情報を取得するコードは下記です
let osVersion = ProcessInfo.processInfo.operatingSystemVersion print(osVersion)
NSOperatingSystemVersionというのが返るようで
majorVersion, minorVersion, patchVersionがInt型で入っています
SwiftでmacOSのバージョン情報を取得するコードは下記です
let osVersion = ProcessInfo.processInfo.operatingSystemVersion print(osVersion)
NSOperatingSystemVersionというのが返るようで
majorVersion, minorVersion, patchVersionがInt型で入っています
Swiftを使っていると必ずSelector引数で渡すファンクションが出てきます。Selectorはstructなのですがここに@objc関数を渡す場合#selector()に包んで渡す必要があるようです。引数にわたす場合#selector(funcName(_:))こんな感じに関数を入れればいいのですが 渡された側はどのように処理をしているのか調べてみました。
class TObject: NSObject { override init() { super.init() } @objc func a(_ :Any) { print("function a") } func b(_ f:Selector){ self.perform(f) } } let a1 = TObject() a1.b(#selector(a1.a(_:)))
TObjectというオブジェクトを作成しa と bの関数を作っています。aの関数は@objcです。最後の2行で実行します。b()にaの関数を入れてb()の中のperform(f)でa()を実行しprint(“function a”)を呼んでいます。NSButtonのaction: Selector?もこのように実行されているのかな