---
title: "sendCommand(apdu:resultHandler:)"
framework: corenfc
role: symbol
role_heading: Instance Method
path: "corenfc/nfciso7816tag/sendcommand(apdu:resulthandler:)"
---

# sendCommand(apdu:resultHandler:)

Sends an application protocol data unit (APDU) to the tag and receives a response APDU.

## Declaration

```swift
@preconcurrency func sendCommand(apdu: NFCISO7816APDU, resultHandler: @escaping @Sendable (Result<NFCISO7816ResponseAPDU, any Error>) -> Void)
```

```swift
func sendCommand(apdu: NFCISO7816APDU, resultHandler: @escaping (Result<NFCISO7816ResponseAPDU, any Error>) -> Void)
```

## Parameters

- `apdu`: An application protocol data unit to send to the tag.
- `resultHandler`: A handler that the reader session invokes after the operation completes. The handler receives a doc://com.apple.documentation/documentation/Swift/Result with the cases:

## Discussion

Discussion When you send a SELECT command with a p1Parameter value of 0x04, your app must support one of the applications listed in the ISO7816 application identifiers for NFC Tag Reader Session property list key. Otherwise, the resultHandler receives an NFCReaderError.Code.readerErrorSecurityViolation error. The session calls resultHandler on the dispatch queue that you provided when creating the NFCTagReaderSession object.

## See Also

### Sending a Command

- [sendCommand(apdu:completionHandler:)](corenfc/nfciso7816tag/sendcommand(apdu:completionhandler:).md)
- [NFCISO7816APDU](corenfc/nfciso7816apdu.md)
- [NFCISO7816ResponseAPDU](corenfc/nfciso7816responseapdu.md)
