2015-07-02 3 views
3

Привет, я новичок в разработке IPhone, и я ничего не знаю в Objective c. Я разрабатываю приложение, используя быстрый. Я добавил инфраструктуру XMPP в свой проект, и соединение XMPP было успешным. Я использую следующий код, чтобы установить мое соединениеПолучение реестров из XMPP в Swift

func setupStream() { 

     xmppStream = XMPPStream() 
     xmppStream!.addDelegate(self, delegateQueue: dispatch_get_main_queue()) 
     xmppReconnect = XMPPReconnect(); 
     xmppRosterStorage = XMPPRosterCoreDataStorage(); 
     xmppRoster = XMPPRoster(rosterStorage: xmppRosterStorage); 



     xmppvCardStorage = XMPPvCardCoreDataStorage.sharedInstance(); 
     xmppvCardTempModule = XMPPvCardTempModule(withvCardStorage:xmppvCardStorage); 

     xmppvCardAvatarModule = XMPPvCardAvatarModule(withvCardTempModule:xmppvCardTempModule); 

     xmppCapabilitiesStorage = XMPPCapabilitiesCoreDataStorage.sharedInstance(); 
     xmppCapabilities = XMPPCapabilities(capabilitiesStorage: xmppCapabilitiesStorage); 

     // SET UP ALL XMPP MODULES 
     xmppRoster!.autoFetchRoster = true; 
     xmppRoster!.autoAcceptKnownPresenceSubscriptionRequests = true; 

     xmppCapabilities!.autoFetchHashedCapabilities = true; 
     xmppCapabilities!.autoFetchNonHashedCapabilities = true; 

     xmppMessageArchivingStorage = XMPPMessageArchivingCoreDataStorage.sharedInstance(); 
     xmppMessageArchivingModule = XMPPMessageArchiving(messageArchivingStorage: xmppMessageArchivingStorage); 
     xmppMessageArchivingModule!.clientSideMessageArchivingOnly = true; 


     // Activate xmpp modules 
     xmppReconnect!.activate(xmppStream); 
     xmppRoster!.activate(xmppStream); 
     xmppvCardTempModule!.activate(xmppStream); 
     xmppvCardAvatarModule!.activate(xmppStream); 
     xmppCapabilities!.activate(xmppStream); 
     xmppMessageArchivingModule!.activate(xmppStream); 


     xmppRoster!.addDelegate(self, delegateQueue:dispatch_get_main_queue()); 
     xmppMessageArchivingModule!.addDelegate(self, delegateQueue:dispatch_get_main_queue()); 


      } 

И следующие методы работают хорошо

func xmppStream(sender: XMPPStream?, didReceiveMessage: XMPPMessage?) { 
} 


func xmppStream(sender: XMPPStream?, didReceivePresence: XMPPPresence?) { 
} 

Теперь я хочу, чтобы получить список реестра от XMPP. Я нашел метод делегата в классе списка

(void)xmppRosterDidEndPopulating:(XMPPRoster *)sender; 

Но как использовать это в классе Swift. Пожалуйста, помогите мне ....

+0

Может быть, вы должны установить делегат XMPPRoster? – Shripada

+0

Наконец я получил ответ Func xmppRosterDidEndPopulating (отправитель: XMPPRoster) {? вар jidList = xmppRosterStorage .jidsForXMPPStream (xmppStream) Println ("List = \ (jidList)") } – pranavjayadev

ответ

1

наконец я получил asnwer, установив делегат, как этот

func xmppRosterDidEndPopulating(sender: XMPPRoster?){ 
     var jidList = xmppRosterStorage?.jidsForXMPPStream(xmppStream) 
     println("List=\(jidList)") 

    } 
+0

привет код помог мне много и спас мои часы. Я работаю быстро и у меня сбой в «NSParameterAssert (storage! = Nil)»; в классах XMPP, которые находятся в объективе c. Любая идея, что вы делаете для этого? – Max

+0

Это касается какой функциональности в XMPP? – pranavjayadev

Смежные вопросы