2017-03-15 5 views
0

私はマルチペラ接続フレームワークで作業しています。セッションオブジェクトを初期化している間に、 "あいまいな参照(_:peer:didChange) '"。同じセッションオブジェクトのデリゲートとしてクラスを作成する際に同じエラーが発生します。ここで私は、事前にこのframework.Thanksに新しいですとコードimplementation.Anyの提案が役立つだろうです:)xcodeのmultipeer接続フレームワークのメンバ 'session(_:peer:didChange)'へのあいまいな参照があります。swift 3

import UIKit 

import MultipeerConnectivity 

var session : MCSession! 

var peer : MCPeerID! 

var browser : MCNearbyServiceBrowser! 

var advertiser : MCNearbyServiceAdvertiser! 


var foundPeers = [MCPeerID]() 

var invitationHandler : ((Bool, MCSession?)->Void)! 


class MCPManager: NSObject,MCSessionDelegate 
{ 

    public func session(_ session: MCSession, peer peerID: MCPeerID, didChange state: MCSessionState) 
    { 
     return 
    } 

    public func session(_ session: MCSession, didReceive data: Data, fromPeer peerID: MCPeerID) 
    { 
     return 
    } 


    public func session(_ session: MCSession, didReceive stream: InputStream, withName streamName: String, fromPeer peerID: MCPeerID) 
    { 
     return 
    } 

    public func session(_ session: MCSession, didStartReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, with progress: Progress) 
    { 
     return 
    } 

    public func session(_ session: MCSession, didFinishReceivingResourceWithName resourceName: String, fromPeer peerID: MCPeerID, at localURL: URL, withError error: Error?) 
    { 
     return 
    } 

    override init() 
    { 
     super.init() 

     peer = MCPeerID(displayName: UIDevice.current.name) 

     session = MCSession(peer: peer) // Ambiguous reference to member 'session(_:peer:didChange)' 

     session.delegate = self //Ambiguous reference to member 'session(_:peer:didChange)' 
    } 
} 
+0

あなたの 'init()'のコードに基づいて、 'MCPManager'クラスの中でそれらのvar宣言をすべて望むのではないかと思います。 – cicerocamargo

+0

うん...このinitメソッドは、セッションを作成中に呼び出されます..あなたはエラーの理由を見つけることができます..事前におめでとう:) – sudharsan

答えて

0

あなたはsessionMCPManager内部コンパイラはMCSessionDelegateのfuncsのいくつかを解決しようとしていると言うときコールが不完全であるために定義していると明確にすることはできません。しかし、あなたは外側のスコープで定義されたそれらのvarsの1つを割り当てようとしているようです。

import UIKit 
import MultipeerConnectivity 

class MCPManager: NSObject, MCSessionDelegate { 
    var session : MCSession! 
    var peer : MCPeerID! 
    var browser : MCNearbyServiceBrowser! 
    var advertiser : MCNearbyServiceAdvertiser! 
    var foundPeers = [MCPeerID]() 
    var invitationHandler : ((Bool, MCSession?)->Void)! 

    override init() { 
     super.init() 
     peer = MCPeerID(displayName: UIDevice.current.name) 
     session = MCSession(peer: peer) 
     session.delegate = self 
    } 

    // MCSessionDelegate methods ommited 
} 

これは、コンパイルし、私はそれが何をしたい願っています:私はこのように、あなたのMCPManagerクラスの定義の中にすべてのそれらのVARSに動いているものをあなたが本当にしたいと思います。

+0

ありがとうu soo :) – sudharsan

関連する問題