[ios] Core NFC를 이용한 데이터 읽기 및 쓰기

iOS에서 Core NFC 프레임워크는 NFC(Near Field Communication) 태그의 정보를 읽고 쓰는 기능을 제공합니다. 이 기능을 사용하여 iOS 앱이 NFC 태그와 상호작용하고 필요한 데이터를 읽거나 쓸 수 있습니다. 이 포스트에서는 Core NFC를 사용하여 NFC 태그의 데이터를 읽고 쓰는 방법에 대해 알아보겠습니다.

Core NFC 설정

Core NFC를 사용하려면 프로젝트에 NFC 기능을 활성화해야 합니다. Xcode에서 프로젝트를 열고, Capabilities 탭으로 이동하여 “Near Field Communication Tag Reading”을 활성화합니다.

NFC 태그의 데이터 읽기

NFC 태그의 데이터를 읽기 위해서는 NFCTagReaderSession을 생성하고 태그를 스캔해야 합니다. 다음은 NFC 태그의 데이터를 읽는 예제 코드입니다:

import CoreNFC

class ViewController: UIViewController, NFCTagReaderSessionDelegate {
    var nfcSession: NFCTagReaderSession?

    func readNFCData() {
        nfcSession = NFCTagReaderSession(pollingOption: .iso14443, delegate: self)
        nfcSession?.begin()
    }

    func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) {
        if case let NFCTag.miFare(tag) = tags.first {
            session.connect(to: tag) { error in
                if error != nil {
                    return
                }
                let miFareTag = tag.asNFCMiFareTag()
                // NFC 태그에서 데이터를 읽는 로직
                session.invalidate()
            }
        }
    }
}

NFC 태그에 데이터 쓰기

NFC 태그에 데이터를 쓰기 위해서는 태그의 데이터 포맷을 이해하고, 쓰기 가능한 권한이 있는지 확인해야 합니다. NFC 태그에 데이터를 쓰는 예제 코드는 다음과 같습니다:

func writeNFCData() {
    nfcSession = NFCTagReaderSession(pollingOption: .iso14443, delegate: self)
    nfcSession?.begin()
}

func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) {
    if case let NFCTag.miFare(tag) = tags.first {
        session.connect(to: tag) { error in
            if error != nil {
                return
            }
            let miFareTag = tag.asNFCMiFareTag()
            // NFC 태그에 데이터를 쓰는 로직
            session.invalidate()
        }
    }
}

NFC 태그의 데이터를 쓰는 작업은 읽기 작업과 유사하며, 태그에 데이터를 쓰기 위한 권한이 있어야 합니다.

이제, Core NFC를 사용하여 iOS 앱에서 NFC 태그의 데이터를 읽고 쓰는 방법에 대해 알아보았습니다. NFC 태그를 활용하여 다양한 애플리케이션을 개발할 수 있는 많은 기회가 있으니, 참고 자료를 통해 더 많은 정보를 얻어보시기 바랍니다.

더 많은 정보: Core NFC - Apple Developer Documentation