国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

XMPP好友列表3

2019-11-14 20:00:31
字體:
來源:轉載
供稿:網友

// Roster

我們繼續寫 獲取好友列表

.h

 1 /*! 2  *  @Author Dylan. 3  * 4  *  Roster 5  */ 6  7 typedef void (^refreshRosterListFailure) (id); 8 typedef void (^Rosterlist) (id); 9 10 /*!11  *  @Author Dylan.12  *13  *  request for roster list. IQ14  */15 - (void)refreshRosterList: (Rosterlist)success16                   failure: (refreshRosterListFailure)failure;17 @PRoperty (nonatomic, strong) NSMutableDictionary * rosterDict;

.m

 1 #pragma mark - rosterList 2  3 - (void)initRosterlist { 4     self.rosterDict = [NSMutableDictionary dictionary]; 5 } 6  7 - (void)refreshRosterList: (Rosterlist)success 8                   failure: (refreshRosterListFailure)failure { 9     10     // call back11     self.refreshSuccess = success;12     self.refreshFailure = failure;13     14     NSxmlElement * query = [NSXMLElement elementWithName:@"query" xmlns:@"jabber:iq:roster"];15     NSXMLElement * iq = [NSXMLElement elementWithName:@"iq"];16     17     XMPPJID * myJID = self.xmppStream.myJID;18     [iq addAttributeWithName:@"from" stringValue:myJID.description];19     [iq addAttributeWithName:@"to" stringValue:myJID.domain];20     [iq addAttributeWithName:@"id" stringValue:@"123456"];21     [iq addAttributeWithName:@"type" stringValue:@"get"];22     [iq addChild:query];23     24     [self.xmppStream sendElement:iq];25 }26 27 - (void)xmppStream:(XMPPStream *)sender didFailToSendIQ:(XMPPIQ *)iq error:(NSError *)error {28     self.refreshFailure(error);29 }30 31 // get user list32 - (BOOL)xmppStream:(XMPPStream *)sender didReceiveIQ:(XMPPIQ *)iq {33     34     // kind of result35     if ([@"result" isEqualToString:iq.type]) {36         NSXMLElement * query = iq.childElement;37         38         if ([@"query" isEqualToString:query.name]) {39             NSArray * items = [query children];40             for (NSXMLElement * item in items) {41                 NSString * jid = [item attributeStringValueForName:@"jid"];42                 XMPPJID * xmppJID = [XMPPJID jidWithString:jid];43                 [_rosterDict setValue:xmppJID forKey:jid];44             }45         }46         // block47         self.refreshSuccess(_rosterDict);48         return YES;49     }50     51     NSLog(@"get iq error");52     return NO;53 }54 55 56 @end

 

// 順便寫出在點m文件中我寫的回掉Block 的屬性

 1 @interface ADXMPPConn () 2  3 /*! 4  *  @Author Dylan. 5  * 6  *  Call back Block 7  */ 8 @property (nonatomic, copy) connectSuccess connSuccess; 9 @property (nonatomic, copy) AuthenticateFailure authenFailure;10 11 @property (nonatomic, copy) registerSuccess regisSuccess;12 @property (nonatomic, copy) registerFailure regisFailure;13 14 /*!15  *  call back block16  */17 @property (nonatomic, copy) sendSuccess success;18 @property (nonatomic, copy) sendFailure failure;19 20 /*!21  *  call back block22  */23 @property (nonatomic, copy) refreshRosterListFailure refreshFailure;24 @property (nonatomic, copy) Rosterlist refreshSuccess;25 26 @end

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 项城市| 嘉禾县| 平利县| 靖江市| 社会| 加查县| 明溪县| 祁东县| 杭锦后旗| 西丰县| 安远县| 林口县| 四平市| 涡阳县| 聂拉木县| 丰都县| 崇仁县| 岐山县| 盐山县| 田东县| 奉化市| 岢岚县| 崇左市| 蓬安县| 财经| 玉龙| 伊宁市| 太保市| 个旧市| 和政县| 双桥区| 阿拉善左旗| 常州市| 林口县| 康乐县| 阿克陶县| 蒙自县| 嘉祥县| 平舆县| 崇仁县| 五常市|