cdts/xdts-ios 3/TUICalling/Source/Model/Util/TRTCCallingUtils.m
2023-07-27 09:20:00 +08:00

97 lines
2.8 KiB
Objective-C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// TUIUtils.m
// TXIMSDK_TUIKit_iOS
//
// Created by xiangzhang on 2020/7/3.
//
#import "TRTCCallingUtils.h"
@implementation TRTCCallingUtils
+ (TRTCCallingUtils *)shareInstance {
static dispatch_once_t onceToken;
static TRTCCallingUtils *g_sharedInstance = nil;
dispatch_once(&onceToken, ^{
g_sharedInstance = [[TRTCCallingUtils alloc] init];
});
return g_sharedInstance;
}
// 实际项目中建议由后台生成一个唯一 roomID防止 roomID 重复
+ (UInt32)generateRoomID {
// android 最大值是 int32roomID 不能为 0
UInt32 random = 1 + arc4random() % (INT32_MAX - 1);
return random;
}
+ (void)getCallUserModel:(NSString *)userID finished:(void(^)(CallUserModel *))finished {
[[V2TIMManager sharedInstance] getUsersInfo:@[userID] succ:^(NSArray<V2TIMUserFullInfo *> *infoList) {
V2TIMUserFullInfo *info = infoList.firstObject;
if (info) {
CallUserModel *model = [[CallUserModel alloc] init];
model.name = info.nickName;
model.avatar = info.faceURL;
model.userId = info.userID;
finished(model);
} else {
finished(nil);
}
} fail:^(int code, NSString *desc) {
finished(nil);
}];
}
+ (NSString *)dictionary2JsonStr:(NSDictionary *)dict {
return [[NSString alloc] initWithData:[self dictionary2JsonData:dict] encoding:NSUTF8StringEncoding];
}
+ (NSDictionary *)jsonSring2Dictionary:(NSString *)jsonString {
if (jsonString == nil) {
return nil;
}
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSError *err = nil;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&err];
if (err || ![dic isKindOfClass:[NSDictionary class]]) {
NSLog(@"Json parse failed: %@", jsonString);
return nil;
}
return dic;
}
+ (NSData *)dictionary2JsonData:(NSDictionary *)dict {
// 转成Json数据
if ([NSJSONSerialization isValidJSONObject:dict])
{
NSError *error = nil;
NSData *data = [NSJSONSerialization dataWithJSONObject:dict options:0 error:&error];
if(error)
{
NSLog(@"[%@] Post Json Error", [self class]);
}
return data;
}
else
{
NSLog(@"[%@] Post Json is not valid", [self class]);
}
return nil;
}
+ (NSDictionary *)jsonData2Dictionary:(NSData *)jsonData {
if (jsonData == nil) {
return nil;
}
NSError *err = nil;
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&err];
if (err || ![dic isKindOfClass:[NSDictionary class]]) {
NSLog(@"Json parse failed");
return nil;
}
return dic;
}
@end