0

私は自分のコードを Swift 2.X から 3.X に移行する作業を行っており、実行時エラーの大部分はバグアウトし続けるエラーを除いて既に解決しています。私はすべての必要な機能を持っており、派生データを消去して削除しましたが、それでも私のクラスは「MCSessionDelegate」に準拠していないと言っています。`

import MultipeerConnectivity
import Foundation

class Cashier: Advertiser
{
var waiterBecomesConnectedHandler: ((MCPeerID) -> Void)?
var waiterBecomesDisconnectedHandler: ((MCPeerID) -> Void)?
}

extension Cashier: MCSessionDelegate
{

@available(iOS 7.0, *)
func session(_ session: MCSession, didStartReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, with progress: Progress) {

}

@available(iOS 7.0, *)
func session(_ session: MCSession, peer peerID: MCPeerID, didChange state: MCSessionState) {
    switch state {
        case .notConnected:
            waiterBecomesDisconnectedHandler?(peerID)
            connectedPeerSessions.removeValue(forKey: peerID)
            break

        case .connected:
            waiterBecomesConnectedHandler?(peerID)
            break

        case .connecting:
            break
    }
}


@available(iOS 7.0, *)
func session(_ session: MCSession, didReceive data: Data, fromPeer peerID: MCPeerID) {

}

@available(iOS 7.0, *)
func session(_ session: MCSession, didReceive stream: InputStream, withName streamName: String, fromPeer peerID: MCPeerID) {

}


@available(iOS 7.0, *)
func session(_ session: MCSession, didFinishReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, at localURL: URL, withError error: Error?){

}
}`

これがプロトコルのコードです `

// Delegate methods for MCSession.
public protocol MCSessionDelegate : NSObjectProtocol {


// Remote peer changed state.
@available(iOS 7.0, *)
public func session(_ session: MCSession, peer peerID: MCPeerID, didChange state: MCSessionState)


// Received data from remote peer.
@available(iOS 7.0, *)
public func session(_ session: MCSession, didReceive data: Data, fromPeer peerID: MCPeerID)


// Received a byte stream from remote peer.
@available(iOS 7.0, *)
public func session(_ session: MCSession, didReceive stream: InputStream, withName streamName: String, fromPeer peerID: MCPeerID)


// Start receiving a resource from remote peer.
@available(iOS 7.0, *)
public func session(_ session: MCSession, didStartReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, with progress: Progress)


// Finished receiving a resource from remote peer and saved the content
// in a temporary location - the app is responsible for moving the file
// to a permanent location within its sandbox.
@available(iOS 7.0, *)
public func session(_ session: MCSession, didFinishReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, at localURL: URL, withError error: Error?)


// Made first contact with peer and have identity information about the
// remote peer (certificate may be nil).
@available(iOS 7.0, *)
optional public func session(_ session: MCSession, didReceiveCertificate certificate: [Any]?, fromPeer peerID: MCPeerID, certificateHandler: @escaping (Bool) -> Swift.Void)
}`
4

2 に答える 2