(八)XMPP名簿モジュール
3478 ワード
モジュール類の紹介:http://www.henishuo.com/ios-xmpp-roster/
上の階に彼の属性と基本的な紹介がありますが、ここではどうやって使うかを説明します.
花簿のモジュール内部はどうやって実現されますか?b5448c463bc4ea8dae9e0fe65179e1d827c740d0
上の階に彼の属性と基本的な紹介がありますが、ここではどうやって使うかを説明します.
花簿のモジュール内部はどうやって実現されますか?
XMPPModule( )
XMPPRoster( )
XMPPRosterCoreDataStorage( )
XMPPRosterStorage( )
XMPPRosterDelegate( )
1、モジュールのオープンとアクティブ化
# xmpp , XMPPFramework.h
//
#import "XMPPRoster.h"
#import "XMPPRosterMemoryStorage.h"
#import "XMPPRosterCoreDataStorage.h"
# ( Library sqlite )
//
XMPPRosterCoreDataStorage *rosterStorage = [XMPPRosterCoreDataStorage sharedInstance];
XMPPRoster *roster = [[XMPPRoster alloc] initWithRosterStorage:_rosterStorage];
//
[roster activate:_xmppStream];
2、モジュール情報の取得 core data
1、 sqlite
2、 Request 、
3、
1、
2、 NSFetchedResultsController
# , controllerDidChangeContent
//1. XMPPRoster.sqlite
NSManagedObjectContext *rosterContext = [WCXMPPTool sharedWCXMPPTool].rosterStorage.mainThreadManagedObjectContext;
//2.Request
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"XMPPUserCoreDataStorageObject"];
# request
//3.
NSFetchedResultsController *resultsContr = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:rosterContext sectionNameKeyPath:nil cacheName:nil];
resultsContr.delegate = self;
NSError *err = nil;
//3.2
[resultsContr performFetch:&err];
# ,
resultsContr.fetchedObjects
XMPPUserCoreDataStorageObject
XMPPUserCoreData StrageObjectについてXMPPUserCoreDataStorageObject user ;
user.sectionNum # 0: 1: 2:
user.photo #
、
if (user.photo) {// ,
cell.imageView.image = user.photo;
}else{
//
NSData *imgData = [[WCXMPPTool sharedWCXMPPTool].avatar photoDataForJID:user.jid];
cell.imageView.image = [UIImage imageWithData:imgData];
}
。
3、友達を追加して友達を削除する# jid
- (void)removeUser:(XMPPJID *)jid
# ( )
- (void)subscribePresenceToUser:(XMPPJID *)jid
# :
1、
2、
XMPPRosterCoreDataStorage
>- (BOOL)userExistsWithJID:(XMPPJID *)jid xmppStream:(XMPPStream *)stream
xmppに友達が発生した問題を追加します.*友達が既存のopenfireに存在する問題を追加します.1.存在しない友達を追加します.アドレス帳にも友達解決方法が示されています.1.サーバーは友達追加の要求をブロックできます.現在のデータベースに友達がいない場合、情報を返さないでください. 2. Subscription
none
to
from
both
4、親友の依頼を傍受する1、 (addDelegate)
2、 XMPPRosterDelegate
- (void)xmppRoster:(XMPPRoster *)sender didReceivePresenceSubscriptionRequest:(XMPPPresence *)presence;
3、 , User
NSString *presenceFromUser =[NSString stringWithFormat:@"%@", [[presence from] user]];
4、
XMPPJID *jid = [XMPPJID jidWithString:presenceFromUser];
[_roster acceptPresenceSubscriptionRequestFrom:jid andAddToRoster:YES];
5、
rejectPresenceSubscriptionRequestFrom