iOS 融云設(shè)置聊天頭像昵稱

我是自己創(chuàng)建的數(shù)據(jù)庫保存在本地

//任何消息都會先經(jīng)過這個方法
- (void)onRCIMReceiveMessage:(RCMessage *)message left:(int)left {
    
    if ([message.objectName isEqualToString:@"RC:CmdMsg"]) {
        
        RCCommandMessage *commandMessage = (RCCommandMessage *)message.content;
        
        NSData *jsonData = [commandMessage.data dataUsingEncoding:NSUTF8StringEncoding];
        NSError *err;
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
        NSMutableDictionary *dataDictionary = [NSMutableDictionary dictionaryWithDictionary:dict];
        [dataDictionary setObject:message.content.senderUserInfo.userId forKey:@"userId"];
        [dataDictionary setObject:message.content.senderUserInfo.name forKey:@"name"];
        [dataDictionary setObject:message.content.senderUserInfo.portraitUri forKey:@"portraitUri"];
        
        //視頻通話
        if ([dict[@"messageType"] isEqualToString:MESSAGETYPE_VIDEOCALL]) {
            //視頻語音通話 消息記錄不需要保存在本地
                [UserInfo sharedUserInfo].msgType = 3;
                [UserInfo sharedUserInfo].vedioUrl = [dataDictionary objectForKey:@"fromVideoUrl"];
        
                dispatch_async(dispatch_get_main_queue(), ^{
            
                    [self showVideoView:dataDictionary withString:@"邀請你視頻聊天"];

                });
        }
        
        //語音通話
        if ([dict[@"messageType"] isEqualToString:MESSAGETYPE_VOICECALLS]) {
       
            dispatch_async(dispatch_get_main_queue(), ^{
                if([self.window viewWithTag:5555] || [self.window viewWithTag:5556])return;
                if([UserInfo sharedUserInfo].yujianta == 34){
                
                    [UserInfo sharedUserInfo].msgType = 4;
                    [UserInfo sharedUserInfo].vedioUrl = @"";
                    [self showVideoView:dataDictionary withString:@"邀請你語音聊天"];
                
                    }
                
            });
            
        }
        
        
    } else {
        
        //更新未讀數(shù)
        dispatch_async(dispatch_get_main_queue(), ^{
            
            [self setupUnreadMessageCount];
            
        });
        
        //設(shè)置頂置
        if ([message.content.senderUserInfo.name isEqualToString:@"最新訪客"] || [message.content.senderUserInfo.name isEqualToString:@"系統(tǒng)消息"] || [message.content.senderUserInfo.name isEqualToString:@"客服消息"]) {
            
            [[RCIMClient sharedRCIMClient] setConversationToTop:message.conversationType targetId:message.targetId isTop:YES];
            
        }
        
        //將消息發(fā)送者用戶信息保存到本地數(shù)據(jù)庫
        NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"RYUserInfo"];
        NSPredicate *pre = [NSPredicate predicateWithFormat:@"userId = %@", message.content.senderUserInfo.userId];
        request.predicate = pre;
        NSArray *resArray = [_context executeFetchRequest:request error:nil];
        //如果不存在該用戶信息就保存
        if (resArray.count == 0) {
            //插入數(shù)據(jù)
            RYUserInfo * info = [NSEntityDescription insertNewObjectForEntityForName:@"RYUserInfo" inManagedObjectContext:_context];
            
            info.userId = message.content.senderUserInfo.userId;
            info.name = message.content.senderUserInfo.name;
            info.portraitUri = message.content.senderUserInfo.portraitUri;
            
            NSError *error = nil;
            if ([_context save:&error]) {
                NSLog(@"數(shù)據(jù)插入到數(shù)據(jù)庫成功");
            }else{
                NSLog(@"數(shù)據(jù)插入到數(shù)據(jù)庫失敗");
            }
            
        } else {
            
            //如果存在 就查看傳來的數(shù)據(jù)是否和本地一致不同就修改
            RYUserInfo *info = resArray[0];
            
            if (![info.name isEqualToString:message.content.senderUserInfo.name])  info.name = message.content.senderUserInfo.name;
            
            if (![info.portraitUri isEqualToString:message.content.senderUserInfo.portraitUri])  info.portraitUri = message.content.senderUserInfo.portraitUri;
            
            NSError *error = nil;
            if ([_context save:&error]) {
                NSLog(@"修改成功");
            }else{
                NSLog(@"更新數(shù)據(jù)失敗, %@", error);
            }
            
        }
        
    }

}

/設(shè)置消息列表頭像昵稱
- (void)getUserInfoWithUserId:(NSString *)userId completion:(void (^)(RCUserInfo *userInfo))completion {

    if ([userId isEqualToString:[RCIM sharedRCIM].currentUserInfo.userId]) {
        return completion([[RCUserInfo alloc] initWithUserId:userId name:[RCIM sharedRCIM].currentUserInfo.name portrait:[RCIM sharedRCIM].currentUserInfo.portraitUri]);
   } else {
        
        //查詢數(shù)據(jù)庫是否存在  UserID
        NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"RYUserInfo"];
        NSPredicate *pre = [NSPredicate predicateWithFormat:@"userId = %@", userId];
        request.predicate = pre;
        NSArray *resArray = [_context executeFetchRequest:request error:nil];
        //存在
        if (resArray.count != 0) {
            RYUserInfo *userInfo = resArray[0];
            RCUserInfo *user = [[RCUserInfo alloc] initWithUserId:userInfo.userId name:userInfo.name portrait:userInfo.portraitUri];
            return completion(user);
            
        }
        
    }

}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌址晕,老刑警劉巖恋谭,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肢执,死亡現(xiàn)場離奇詭異,居然都是意外死亡俐镐,警方通過查閱死者的電腦和手機云挟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門梆砸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來转质,“玉大人园欣,你說我怎么就攤上這事⌒菪罚” “怎么了沸枯?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵赂弓,是天一觀的道長绑榴。 經(jīng)常有香客問我盈魁,道長翔怎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任赤套,我火速辦了婚禮飘痛,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘容握。我一直安慰自己,他們只是感情好剔氏,可當(dāng)我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著谈跛,像睡著了一般羊苟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上感憾,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天践险,我揣著相機與錄音吹菱,去河邊找鬼巍虫。 笑死鳍刷,一個胖子當(dāng)著我的面吹牛占遥,可吹牛的內(nèi)容都是我干的输瓜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼尤揣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了北戏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤嗜愈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后蠕嫁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡病袄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了益缠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厂镇。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡左刽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出欠痴,到底是詐尸還是另有隱情,我是刑警寧澤喇辽,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布,位于F島的核電站吠式,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏抽米。R本人自食惡果不足惜特占,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望云茸。 院中可真熱鬧是目,春花似錦、人聲如沸标捺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽亡容。三九已至嗤疯,卻和暖如春闺兢,著一層夾襖步出監(jiān)牢的瞬間茂缚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工阱佛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓翩蘸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子泄鹏,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容