2017-03-15 7 views
0

멀티 페어 연결 프레임 워크에서 작업 중입니다. 세션 개체를 초기화하는 동안 "모호한 참조 to member 'session (_ : peer : didChange)' ". 동일한 세션 객체의 델리게이트로 클래스를 만드는 동안 동일한 오류가 발생합니다. 여기 난 당신이 MCPManager 내부 session 컴파일러가 MCSessionDelegate funcs의 일부를 해결하기 위해 노력하고있다 말할 때 사전 :xcode 8 multipeer 연결 프레임 워크에서 'session (_ : peer : didChange)'멤버에 대한 모호한 참조가 발생했습니다. 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

이 framework.Thanks에 새로운 오전으로 코드 implementation.Any 제안 도움이 될 것입니다 전화가 불완전하기 때문에 당신이 정의하고 있고 명확하게 할 수 없습니다. 그러나 그것은 당신이 바깥 쪽 범위에 정의 된 그 vars 중 하나를 할당하려고하는 것처럼 보입니다.

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 클래스의 정의에 모든 바르를 이동하고 당신이 정말로 원하는 생각합니다.

+0

감사합니다. so so much :) – sudharsan