---
title: "canEvaluatePolicy(_:error:)"
framework: localauthentication
role: symbol
role_heading: Instance Method
path: "localauthentication/lacontext/canevaluatepolicy(_:error:)"
---

# canEvaluatePolicy(_:error:)

Assesses whether authentication can proceed for a given policy.

## Declaration

```swift
func canEvaluatePolicy(_ policy: LAPolicy, error: NSErrorPointer) -> Bool
```

## Parameters

- `policy`: The policy to evaluate. For possible values, see doc://com.apple.localauthentication/documentation/LocalAuthentication/LAPolicy.
- `error`: If the method fails, it uses this parameter to return an error detailing what went wrong. See doc://com.apple.localauthentication/documentation/LocalAuthentication/LAError-swift.struct/Code for possible error codes. Specify nil for this parameter to ignore any errors.

## Return Value

Return Value true if the policy can be evaluated, otherwise false.

## Discussion

Discussion Some policies impose requirements that must be met before authentication can proceed. For example, a policy that requires biometrics can’t authenticate if Touch ID or Face ID is disabled. This method tests all the prerequisites for a given policy. Don’t store the return value from this method because it might change as a result of changes in the system. For example, a user might disable Touch ID after you call this method. important: Don’t call this method in the reply block of the evaluatePolicy(_:localizedReason:reply:) method because that might lead to deadlock.

## See Also

### Checking availability

- [LAPolicy](localauthentication/lapolicy.md)
- [biometryType](localauthentication/lacontext/biometrytype.md)
- [LABiometryType](localauthentication/labiometrytype.md)
