我正在使用
SwiftFlutterJailbreakDetectionPlugin
,当我调用方法result()
并传递FlutterMethodNotImplemented
时,我收到错误Reference to var 'FlutterMethodNotImplemented' is not concurrency-safe because it involves shared mutable state
import Flutter
import UIKit
import IOSSecuritySuite
public class SwiftFlutterJailbreakDetectionPlugin: NSObject, FlutterPlugin {
public static func register(with registrar: FlutterPluginRegistrar) {
let channel = FlutterMethodChannel(name: "flutter_jailbreak_detection", binaryMessenger: registrar.messenger())
let instance = SwiftFlutterJailbreakDetectionPlugin()
registrar.addMethodCallDelegate(instance, channel: channel)
}
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
switch call.method {
case "jailbroken":
let check2 = IOSSecuritySuite.amIJailbroken()
result(check2)
break
case "developerMode":
result(IOSSecuritySuite.amIRunInEmulator())
break
default:
result(FlutterMethodNotImplemented)
}
}
}
使用预并发一致性。这是 Swift 6 的一项新功能。该功能的整体理念是提供一种简单且安全的方法来处理协议隔离不匹配问题。它告诉编译器是的,实际上,我的隔离类型可以符合这个非隔离协议。
导入前使用
@preconcurrency
Flutter
如下所示
@preconcurrency import Flutter
注意:就我而言,它有效。