Browse Source

【代码优化】修复微聊语音没有声音问题,修改部分测试问题

master
公司电脑 1 year ago
parent
commit
9a2a7179e0
  1. 4
      tongxin.xcodeproj/project.pbxproj
  2. BIN
      tongxin.xcworkspace/xcuserdata/ecell.xcuserdatad/UserInterfaceState.xcuserstate
  3. 190
      tongxin.xcworkspace/xcuserdata/ecell.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
  4. 1
      tongxin/Helpers/myHttp/MyHttp.m
  5. 1
      tongxin/ThirdPartyLib/MessageDisplayKit/Classes/Models/XHMessage.h
  6. 9
      tongxin/ThirdPartyLib/MessageDisplayKit/Classes/Models/XHMessage.m
  7. 4
      tongxin/ThirdPartyLib/MessageDisplayKit/Classes/Views/MessageContentViews/XHMessageTableViewCell.m
  8. 5
      tongxin/VC/DeviceTab/ChatListViewController.m
  9. 6
      tongxin/VC/DeviceTab/DeviceTabViewController.m
  10. 9
      tongxin/VC/More/Message/AttentionMessageViewController.m
  11. 9
      tongxin/VC/More/Set/ChangePasswordViewController.m
  12. 3
      tongxin/VC/WatchHome/Chat/ChatViewController.h
  13. 18
      tongxin/VC/WatchHome/Chat/ChatViewController.m
  14. 2
      tongxin/VC/WatchHome/Family/FamilyViewController.m
  15. 4
      tongxin/VC/WatchHome/Family/SelectFamilyContactViewController.m
  16. 3
      tongxin/VC/WatchHome/NewHomeVC/HomeHeaderTableView.m
  17. 23
      tongxin/xBase/Model/Circle.m
  18. 159
      tongxin/xBase/Model/Device.h
  19. 5
      tongxin/xBase/Model/Device.m
  20. 40
      tongxin/xBase/Model/User.h
  21. 2
      tongxin/xBase/Model/baseModel.h
  22. 31
      tongxin/xBase/Model/baseModel.m

4
tongxin.xcodeproj/project.pbxproj

@ -7246,7 +7246,7 @@ @@ -7246,7 +7246,7 @@
"$(PROJECT_DIR)/sdk/lib/ios",
);
MACH_O_TYPE = mh_execute;
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.5;
"OTHER_CODE_SIGN_FLAGS[sdk=*]" = "--generate-entitlement-der";
OTHER_LDFLAGS = (
"$(inherited)",
@ -7362,7 +7362,7 @@ @@ -7362,7 +7362,7 @@
"$(PROJECT_DIR)/tongxin/ThirdPartyLib/ShareSDK/ShareSDK/Support/PlatformSDK/WeChatSDK",
"$(PROJECT_DIR)/sdk/lib/ios",
);
MARKETING_VERSION = 1.4.3;
MARKETING_VERSION = 1.4.5;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",

BIN
tongxin.xcworkspace/xcuserdata/ecell.xcuserdatad/UserInterfaceState.xcuserstate generated

Binary file not shown.

190
tongxin.xcworkspace/xcuserdata/ecell.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist

@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
filePath = "tongxin/Helpers/myHttp/MyHttp.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "589"
endingLineNumber = "589"
startingLineNumber = "590"
endingLineNumber = "590"
landmarkName = "-UploadPictureByFileName:Path:success:failure:"
landmarkType = "7">
</BreakpointContent>
@ -30,8 +30,8 @@ @@ -30,8 +30,8 @@
filePath = "tongxin/Helpers/myHttp/MyHttp.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "582"
endingLineNumber = "582"
startingLineNumber = "583"
endingLineNumber = "583"
landmarkName = "-UploadPictureByFileName:Path:success:failure:"
landmarkType = "7">
</BreakpointContent>
@ -375,22 +375,6 @@ @@ -375,22 +375,6 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "6D581E7F-90BB-48F4-90CD-899BB83B1D40"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/Helpers/myHttp/MyHttp.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "496"
endingLineNumber = "496"
landmarkName = "+getURL:objArr:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "7B99A458-B01F-4808-B710-3470164578A7"
shouldBeEnabled = "Yes"
ignoreCount = "0"
@ -494,8 +478,8 @@ @@ -494,8 +478,8 @@
filePath = "tongxin/VC/DeviceTab/ChatListViewController.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "119"
endingLineNumber = "119"
startingLineNumber = "122"
endingLineNumber = "122"
landmarkName = "-getModelList"
landmarkType = "7">
</BreakpointContent>
@ -503,81 +487,193 @@ @@ -503,81 +487,193 @@
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "136DD943-8CB8-46BD-B134-057F7B8161D8"
uuid = "B8959789-85F5-4D11-942F-41968B5201E8"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/xBase/Model/User.m"
filePath = "tongxin/AppDelegate.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "48"
endingLineNumber = "48"
landmarkName = "-setOwnedDevices:"
startingLineNumber = "576"
endingLineNumber = "576"
landmarkName = "-handlePushMsg:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "B8959789-85F5-4D11-942F-41968B5201E8"
uuid = "E847ADF9-CA03-47B4-9852-E7501D7395E3"
shouldBeEnabled = "No"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/VC/DeviceTab/View/ChatListTableViewCell.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "65"
endingLineNumber = "65"
landmarkName = "-setListModel:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "F794B3D5-ED8F-4DA9-B02D-5427D789922B"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/AppDelegate.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "576"
endingLineNumber = "576"
landmarkName = "-handlePushMsg:"
startingLineNumber = "807"
endingLineNumber = "807"
landmarkName = "-applicationWillEnterForeground:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "2C27311D-DF03-444E-AB76-18E11B6AD269"
uuid = "4A3DB748-7DE6-4B65-A363-F05E2F495B28"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/VC/WatchHome/Chat/ChatPresenter.m"
filePath = "tongxin/ThirdPartyLib/MessageDisplayKit/Classes/Views/MessageContentViews/XHMessageTableViewCell.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "155"
endingLineNumber = "155"
landmarkName = "-P_getFamilyMessageLastMsg:block:"
startingLineNumber = "136"
endingLineNumber = "136"
landmarkName = "-transpond:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "E847ADF9-CA03-47B4-9852-E7501D7395E3"
shouldBeEnabled = "No"
uuid = "2E53853C-062E-48F7-94D4-CDA208772894"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/VC/DeviceTab/View/ChatListTableViewCell.m"
filePath = "tongxin/VC/WatchHome/Family/SelectFamilyContactViewController.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "65"
endingLineNumber = "65"
landmarkName = "-setListModel:"
startingLineNumber = "85"
endingLineNumber = "85"
landmarkName = "-viewDidLoad"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "F794B3D5-ED8F-4DA9-B02D-5427D789922B"
uuid = "EBF91773-DEDC-47DF-B3FC-AB23DBD2F239"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/AppDelegate.m"
filePath = "tongxin/xBase/Model/Circle.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "807"
endingLineNumber = "807"
landmarkName = "-applicationWillEnterForeground:"
startingLineNumber = "27"
endingLineNumber = "27"
landmarkName = "-getObjWithID:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "0361C1F3-11F5-4590-86C4-A385684BEB77"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/xBase/Model/Circle.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "55"
endingLineNumber = "55"
landmarkName = "-getDeviceWithIMEI:"
landmarkType = "7">
<Locations>
<Location
uuid = "0361C1F3-11F5-4590-86C4-A385684BEB77 - 1955f1d5da68dd2f"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "-[Circle getDeviceWithIMEI:]"
moduleName = "&#x4e50;&#x5eb7;&#x5b88;&#x62a4;"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/leKanShouHu-ios/tongxin/xBase/Model/Circle.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "55"
endingLineNumber = "55"
offsetFromSymbolStart = "104">
</Location>
<Location
uuid = "0361C1F3-11F5-4590-86C4-A385684BEB77 - f330c3dc0e9873ba"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__28-[Circle getDeviceWithIMEI:]_block_invoke"
moduleName = "&#x4e50;&#x5eb7;&#x5b88;&#x62a4;"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/leKanShouHu-ios/tongxin/xBase/Model/Circle.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "56"
endingLineNumber = "56"
offsetFromSymbolStart = "68">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
uuid = "9F806ADF-8C5E-4740-80D6-3DE89B80820A"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "tongxin/xBase/Model/Circle.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "39"
endingLineNumber = "39"
landmarkName = "-getUserWithUserID:"
landmarkType = "7">
<Locations>
<Location
uuid = "9F806ADF-8C5E-4740-80D6-3DE89B80820A - 1b12ef29b3a05c96"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "-[Circle getUserWithUserID:]"
moduleName = "&#x4e50;&#x5eb7;&#x5b88;&#x62a4;"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/leKanShouHu-ios/tongxin/xBase/Model/Circle.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "39"
endingLineNumber = "39"
offsetFromSymbolStart = "108">
</Location>
<Location
uuid = "9F806ADF-8C5E-4740-80D6-3DE89B80820A - d18eb79c6a3838c3"
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
symbolName = "__28-[Circle getUserWithUserID:]_block_invoke"
moduleName = "&#x4e50;&#x5eb7;&#x5b88;&#x62a4;"
usesParentBreakpointCondition = "Yes"
urlString = "file:///Users/ecell/leKanShouHu-ios/tongxin/xBase/Model/Circle.m"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "40"
endingLineNumber = "40"
offsetFromSymbolStart = "72">
</Location>
</Locations>
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>

1
tongxin/Helpers/myHttp/MyHttp.m

@ -492,6 +492,7 @@ @@ -492,6 +492,7 @@
+ (NSString *)getURL:(NSString *)URL objArr:(NSArray *)objArr
{
__block NSString *urlStr = URL;//self.caInterface[@"prefix"];
NSArray *arr = @[@"[openid]",@"[imei]",@"[vendor]",@"[groupid]"];
@try {

1
tongxin/ThirdPartyLib/MessageDisplayKit/Classes/Models/XHMessage.h

@ -55,7 +55,6 @@ @@ -55,7 +55,6 @@
@property (nonatomic, copy) NSNumber *senderType;
@property (nonatomic, copy) NSNumber *type;
@property (nonatomic, copy) NSString *online;
@property (nonatomic, copy) NSString *Id;
@property (nonatomic, assign) BOOL hide;

9
tongxin/ThirdPartyLib/MessageDisplayKit/Classes/Models/XHMessage.m

@ -15,13 +15,6 @@ @@ -15,13 +15,6 @@
@synthesize timestamp = _timestamp;
@synthesize avator = _avator;
+ (NSDictionary<NSString *, id> *)modelCustomPropertyMapper
{
return @{
@"Id":@"id",
};
}
- (void)setType:(NSNumber *)type{
_type = type;
if ([type isEqualToNumber:@(10005)]) {
@ -257,7 +250,6 @@ @@ -257,7 +250,6 @@
_avatar = [aDecoder decodeObjectForKey:@"avatar"];
_avator = [aDecoder decodeObjectForKey:@"avator"];
_Id = [aDecoder decodeObjectForKey:@"Id"];
_senderID = [aDecoder decodeObjectForKey:@"senderID"];
_timestamp = [aDecoder decodeObjectForKey:@"timestamp"];
@ -293,7 +285,6 @@ @@ -293,7 +285,6 @@
[aCoder encodeObject:self.avator forKey:@"avator"];
[aCoder encodeObject:self.Id forKey:@"Id"];
[aCoder encodeObject:self.senderID forKey:@"senderID"];
[aCoder encodeObject:self.timestamp forKey:@"timestamp"];

4
tongxin/ThirdPartyLib/MessageDisplayKit/Classes/Views/MessageContentViews/XHMessageTableViewCell.m

@ -132,11 +132,11 @@ static const CGFloat kXHUserNameLabelHeight = 20; @@ -132,11 +132,11 @@ static const CGFloat kXHUserNameLabelHeight = 20;
- (void)transpond:(id)sender {
DLog(@"Cell was transpond");
// 举报
NSLog(@"消息id--%@",self.messageBubbleView.message.Id);
//NSLog(@"消息id--%@",self.messageBubbleView.message.msgId);
if (self.messageBubbleView.message.content && self.messageBubbleView.message.senderID) {
CommonPopView *popview = [CommonPopView new];
[popview reportPopView:self.messageBubbleView.message.senderID];
[popview reportPopView:self.messageBubbleView.message.id];
}
}

5
tongxin/VC/DeviceTab/ChatListViewController.m

@ -57,12 +57,14 @@ @@ -57,12 +57,14 @@
} selectedCell:^(UITableView * _Nonnull tableView, NSIndexPath * _Nonnull indexPath) {
ChatListModel *model = self.myDataSource[indexPath.row];
NSLog(@"%@",cUser.cDevice);
ChatViewController *vc = [[ChatViewController alloc] init];
vc.infoDevice = cUser.cDevice;
vc.zx_navTitle = model.groupid ? @"家庭群聊" : model.name;
vc.chatType = model.groupid ? 222: 111;
if (model.groupid)
{
vc.imei = cUser.cDevice.imei;
Circle *infoCircle = [[Circle alloc] init];
infoCircle.groupid = model.groupid;
infoCircle.creator = model.creator;
@ -70,6 +72,7 @@ @@ -70,6 +72,7 @@
infoCircle.devices = model.devices;
infoCircle.msgNum = model.msgNum;
vc.infoCircle = infoCircle;
vc.infoUser = cUser;
}
else
{

6
tongxin/VC/DeviceTab/DeviceTabViewController.m

@ -326,14 +326,14 @@ @@ -326,14 +326,14 @@
[menuTitleArr1 addObject:cUser.cDevice.support_whiteList.intValue == 0 ? @"电话本" : @"管理员"];
[menuImageArr1 addObject:@"icon_phonebook"];
}
if(cUser.cDevice.support_video.intValue == 4 || cUser.cDevice.support_video.intValue == 5 || cUser.cDevice.support_video.intValue == 1)
if(cUser.cDevice.support_video)
// if(cUser.cDevice.support_video.intValue == 4 || cUser.cDevice.support_video.intValue == 5 || cUser.cDevice.support_video.intValue == 1)
if (cUser.cDevice.support_video && cUser.cDevice.support_video.intValue != 0)
{
[menuTitleArr1 addObject:@"视频通话"];
[menuImageArr1 addObject:@"icon_home_video_call"];
}
if (cUser.cDevice.support_chat && cUser.cDevice.support_chat.intValue == 0)
if (cUser.cDevice.support_chat && cUser.cDevice.support_chat.boolValue)
{
[menuTitleArr1 addObject:@"微聊"];
[menuImageArr1 addObject:@"icon_small_talk"];

9
tongxin/VC/More/Message/AttentionMessageViewController.m

@ -24,6 +24,10 @@ @@ -24,6 +24,10 @@
[super viewWillAppear:animated];
[self loadMoreDataWithDMessage:nil];
}
- (void)viewWillDisappear:(BOOL)animated {
[super viewWillDisappear:animated];
[SVProgressHUD dismiss];
}
- (void)viewDidLoad {
[super viewDidLoad];
@ -77,9 +81,6 @@ @@ -77,9 +81,6 @@
} cancelHandler:nil destructiveHandler:nil];
[alertView showAnimated:YES completionHandler:nil];
}
- (void)loadMoreDataWithDMessage:(DMessage *)dMessage{
@ -230,8 +231,10 @@ @@ -230,8 +231,10 @@
[params setValue:dMessage.id forKey:@"id"];
[params setValue:@(ifAgree) forKey:@"agree"];
[SVProgressHUD showInfoWithStatus:@"正在处理"];
[DMessage manageAttentionWithParams:params success:^{
//刷新数据
[SVProgressHUD dismiss];
[weakSelf.myDataSource removeAllObjects];
[weakSelf.listDataSoure removeAllObjects];
[weakSelf.dateArr removeAllObjects];

9
tongxin/VC/More/Set/ChangePasswordViewController.m

@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
success:^(NSURLSessionDataTask *task, id responseObject)
{
if ([responseObject[@"code"] intValue] == HTTP_SUCCESS) {
[SVProgressHUD showErrorWithStatus:@"修改成功,请重新登录"];
[SVProgressHUD showSuccessWithStatus:@"修改成功,请重新登录"];
[User setCurrentUser:nil];
if (!cUser) {
@ -87,10 +87,9 @@ @@ -87,10 +87,9 @@
[UserDefaults setBool:NO forKey:kifRememberPWDKey];
[UserDefaults removeObjectForKey:@"lastpwd"];
[SVProgressHUD dismissWithDelay:1
completion:^{
[[NSNotificationCenter defaultCenter] postNotificationName:@"outLogin"
object:nil];
[SVProgressHUD dismissWithDelay:1 completion:^{
[self.navigationController popToRootViewControllerAnimated:YES];
[[NSNotificationCenter defaultCenter] postNotificationName:@"outLogin" object:nil];
}];
}
}

3
tongxin/VC/WatchHome/Chat/ChatViewController.h

@ -14,6 +14,9 @@ @@ -14,6 +14,9 @@
@property (strong, nonatomic) Circle *infoCircle;
@property (strong, nonatomic) Device *infoDevice;
///// 群聊单聊类型区分 111:单聊 222:群聊
//@property (nonatomic ,assign) NSInteger chatType;

18
tongxin/VC/WatchHome/Chat/ChatViewController.m

@ -207,7 +207,7 @@ @@ -207,7 +207,7 @@
presenter = [[ChatPresenter alloc] initWithViewController:self];
self.infoUser = cUser;
self.infoUser.cDevice.imei = self.imei;
// self.infoUser.cDevice.imei = self.imei;
// self.infoCircle = [cUser getCircleWithImei:cUser.cDevice.imei];
NSLog(@"%@",self.infoCircle);
if (!self.chatType && self.infoCircle)
@ -630,7 +630,7 @@ @@ -630,7 +630,7 @@
[self.infoCircle sendCircleMessageWithParameters:parameters
success:^(id responseObject) {
[weakSelf setLastShowTimetampWithMessage:message];
message.Id = responseObject[@"id"];
message.id = responseObject[@"id"];
[weakSelf addMessage:message];
self->presenter.isSended = YES;
} failure:^{
@ -646,7 +646,7 @@ @@ -646,7 +646,7 @@
[parameters setValue:cUser.accesstoken forKey:@"token"];
[self.infoCircle sendCircleMessageWithImei:self.imei Parameters:parameters success:^(id responseObject) {
[weakSelf setLastShowTimetampWithMessage:message];
message.Id = responseObject[@"id"];
message.id = responseObject[@"id"];
[weakSelf addMessage:message];
self->presenter.isSended = YES;
} failure:^{
@ -679,7 +679,7 @@ @@ -679,7 +679,7 @@
@"content":UIImageJPEGRepresentation(photo, 0.1)}];
[self.infoCircle sendCircleMessageWithParameters:parameters
success:^(id responseObject) {
message.Id = responseObject[@"id"];
message.id = responseObject[@"id"];
[weakSelf setLastShowTimetampWithMessage:message];
[weakSelf addMessage:message];
[weakSelf finishSendMessageWithBubbleMessageType:XHBubbleMessageMediaTypePhoto];
@ -693,7 +693,7 @@ @@ -693,7 +693,7 @@
[parameters setValue:cUser.openid forKey:@"openid"];
[parameters setValue:cUser.accesstoken forKey:@"token"];
[self.infoCircle sendCircleMessageWithImei:self.imei Parameters:parameters success:^(id responseObject) {
message.Id = responseObject[@"id"];
message.id = responseObject[@"id"];
[weakSelf setLastShowTimetampWithMessage:message];
[weakSelf addMessage:message];
[weakSelf finishSendMessageWithBubbleMessageType:XHBubbleMessageMediaTypePhoto];
@ -754,7 +754,7 @@ @@ -754,7 +754,7 @@
NSMutableDictionary *parameters = [NSMutableDictionary dictionaryWithDictionary:@{@"type":@(3), @"content":data,@"duration":voiceDuration}];
[self.infoCircle sendCircleMessageWithParameters:parameters
success:^(id responseObject) {
message.Id = responseObject[@"id"];
message.id = responseObject[@"id"];
[weakSelf setLastShowTimetampWithMessage:message];
NSString *fileName = [NSString stringWithFormat:@"%@.wav",responseObject[@"id"]];
NSString *wavPath = [CJFileUtility documentsPathSubDir:@"msg_audio" andFile:fileName];
@ -777,7 +777,7 @@ @@ -777,7 +777,7 @@
[parameters setValue:cUser.accesstoken forKey:@"token"];
[self.infoCircle sendCircleMessageWithImei:self.imei Parameters:parameters success:^(id responseObject) {
message.Id = responseObject[@"id"];
message.id = responseObject[@"id"];
[weakSelf setLastShowTimetampWithMessage:message];
NSString *fileName = [NSString stringWithFormat:@"%@.wav",responseObject[@"id"]];
NSString *wavPath = [CJFileUtility documentsPathSubDir:@"msg_audio" andFile:fileName];
@ -814,7 +814,7 @@ @@ -814,7 +814,7 @@
[self.infoCircle sendCircleMessageWithParameters:parameters
success:^(id responseObject) {
[weakSelf setLastShowTimetampWithMessage:emotionMessage];
emotionMessage.Id = responseObject[@"id"];
emotionMessage.id = responseObject[@"id"];
[weakSelf addMessage:emotionMessage];
self->presenter.isSended = YES;
[weakSelf finishSendMessageWithBubbleMessageType:XHBubbleMessageMediaTypeEmotion];
@ -831,7 +831,7 @@ @@ -831,7 +831,7 @@
[parameters setValue:cUser.accesstoken forKey:@"token"];
[self.infoCircle sendCircleMessageWithImei:self.imei Parameters:parameters success:^(id responseObject) {
[weakSelf setLastShowTimetampWithMessage:emotionMessage];
emotionMessage.Id = responseObject[@"id"];
emotionMessage.id = responseObject[@"id"];
[weakSelf addMessage:emotionMessage];
self->presenter.isSended = YES;
[weakSelf finishSendMessageWithBubbleMessageType:XHBubbleMessageMediaTypeEmotion];

2
tongxin/VC/WatchHome/Family/FamilyViewController.m

@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
- (void)viewDidLoad {
[super viewDidLoad];
[self setRightBarBtnTitle:nil RoImage:[UIImage imageNamed:@"icon_delete"]];
[self setTitle:@"情号码"];
[self setTitle:@"情号码"];
// CGRect newFrame = self.myTableView.frame;
// newFrame.size.height = newFrame.size.height - 45 - 22;
self.myTableView.frame = CGRectMake(0, iPhoneX_NavHeight, ScreenWidth, ScreenHeight-iPhoneX_NavHeight-76);

4
tongxin/VC/WatchHome/Family/SelectFamilyContactViewController.m

@ -82,8 +82,8 @@ @@ -82,8 +82,8 @@
self.title = @"修改亲情号";
}
_menu1OptionTitles = cUser.cDevice.support_family && cUser.cDevice.support_family.intValue == 1 ? @[@"1",@"2",@"3"] : @[@"1",@"2",@"3",@"4"];
_menu1OptionIcons = cUser.cDevice.support_family && cUser.cDevice.support_family.intValue == 1 ? @[@"icon_to_enable",@"icon_to_enable",@"icon_to_enable"] : @[@"icon_to_enable",@"icon_to_enable",@"icon_to_enable",@"icon_to_enable"];
_menu1OptionTitles = cUser.cDevice.deviceType.intValue != 2 ? @[@"1",@"2",@"3"] : @[@"1",@"2",@"3",@"4"];
_menu1OptionIcons = cUser.cDevice.deviceType.intValue != 2 ? @[@"icon_to_enable",@"icon_to_enable",@"icon_to_enable"] : @[@"icon_to_enable",@"icon_to_enable",@"icon_to_enable",@"icon_to_enable"];
self.apiFamily = [[FamilyContact alloc] init];
[self.view setBackgroundColor:[UIColor whiteColor]];

3
tongxin/VC/WatchHome/NewHomeVC/HomeHeaderTableView.m

@ -158,7 +158,8 @@ @@ -158,7 +158,8 @@
[titleArray addObject:@"上课禁用"];
[imageArray addObject:@"icon_disabled"];
}
if(cUser.cDevice.support_video)
// if(cUser.cDevice.support_video.intValue == 4 || cUser.cDevice.support_video.intValue == 5 || cUser.cDevice.support_video.intValue == 1)
if (cUser.cDevice.support_video && cUser.cDevice.support_video.intValue != 0)
{
[titleArray addObject:@"视频通话"];
[imageArray addObject:@"icon_home_video_call"];

23
tongxin/xBase/Model/Circle.m

@ -66,8 +66,10 @@ @@ -66,8 +66,10 @@
#pragma 获取圈详情
- (void)getCircleInfoSuccess:(void (^)())success
failure:(void (^)())failure{
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__
objArr:@[self]];
// NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__
// objArr:@[self]];
NSString *urlStr = [NSString stringWithFormat:@"getway/chatGroups/%@",self.groupid];
[xMyHttp URL:urlStr
method:@"GET" parameters:@{}
@ -90,8 +92,9 @@ @@ -90,8 +92,9 @@
#pragma 获取圈邀请码
- (void)getCircleInviteTokenSuccess:(void (^)(id responseObject))success
failure:(void (^)())failure{
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__INVITETOKEN
objArr:@[self]];
// NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__INVITETOKEN objArr:@[self]];
NSString *urlStr = [NSString stringWithFormat:@"getway/chatGroups/%@/inviteToken",self.groupid];
NSMutableDictionary *param = [NSMutableDictionary dictionary];
[param setValue:TargetName forKey:@"channel"];
@ -118,8 +121,10 @@ @@ -118,8 +121,10 @@
success:(void (^)(id responseObject))success
failure:(void (^)())failure
{
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__MESSAGE
objArr:@[self]];
// NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__MESSAGE
// objArr:@[self]];
NSString *urlStr = [NSString stringWithFormat:@"getway/chatGroups/%@/message",self.groupid];
NSLog(@"get msg url = %@", urlStr);
@ -203,8 +208,10 @@ @@ -203,8 +208,10 @@
success:(void (^)(id responseObject))success
failure:(void (^)())failure{
NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__MESSAGE
objArr:@[self]];
// NSString *urlStr = [MyHttp getURL:HTTP_CHATGROUPS__MESSAGE
// objArr:@[self]];
NSString *urlStr = [NSString stringWithFormat:@"getway/chatGroups/%@/message",self.groupid];
NSData *data = parameters[@"content"];

159
tongxin/xBase/Model/Device.h

@ -20,275 +20,276 @@ @@ -20,275 +20,276 @@
@interface Device : baseModel
@property (nonatomic, strong) NSNumber *vendor;
@property (nonatomic, strong) NSString *imei;
@property (nonatomic, strong) NSNumber *accountNum;//设备绑定的用户数量
@property (nonatomic, strong) NSMutableArray *chatGroupList;//设备绑定的用户数量
@property (nonatomic, strong) NSString *authcode;//注册码
@property (nonatomic, copy) NSNumber *vendor;
@property (nonatomic, copy) NSString *imei;
@property (nonatomic, copy) NSNumber *accountNum;//设备绑定的用户数量
@property (nonatomic, copy) NSMutableArray *chatGroupList;//设备绑定的用户数量
@property (nonatomic, copy) NSString *authcode;//注册码
@property (nonatomic, strong) NSString *mac;
@property (nonatomic, strong) NSMutableArray *contacts;
//@property (nonatomic, strong) NSMutableArray *locations;
@property (nonatomic, copy) NSString *mac;
@property (nonatomic, copy) NSMutableArray *contacts;
//@property (nonatomic, copy) NSMutableArray *locations;
@property (nonatomic, strong) NSNumber *voltage;
@property (nonatomic, copy) NSNumber *voltage;
@property (nonatomic, strong) NSNumber *lock;
@property (nonatomic, copy) NSNumber *lock;
@property (nonatomic, strong) NSNumber *step;
@property (nonatomic, copy) NSNumber *step;
@property (nonatomic, strong) NSMutableArray *alerts;
@property (nonatomic, copy) NSMutableArray *alerts;
@property (nonatomic ,strong) NSNumber *opRejectStrangeCall;//设置腕表是否拒绝陌生人来电
@property (nonatomic ,strong) NSNumber *opMonitor;//设置监听腕表
@property (nonatomic ,strong) NSString *opMonitorPhone;//设置腕表定位模式
@property (nonatomic ,copy) NSNumber *opRejectStrangeCall;//设置腕表是否拒绝陌生人来电
@property (nonatomic ,copy) NSNumber *opMonitor;//设置监听腕表
@property (nonatomic ,copy) NSString *opMonitorPhone;//设置腕表定位模式
@property (nonatomic ,strong) NSNumber *opSettingVolume;//设置腕表音量等级
@property (nonatomic ,copy) NSNumber *opSettingVolume;//设置腕表音量等级
@property (nonatomic ,strong) NSNumber *opFlower;//设置和获取属性 腕表小红花奖励个数
@property (nonatomic ,copy) NSNumber *opFlower;//设置和获取属性 腕表小红花奖励个数
@property (nonatomic ,strong) NSNumber *opLocationMode;//设置腕表定位频率值 // MARK: update by lsz 2021-06-23
@property (nonatomic ,copy) NSNumber *opLocationMode;//设置腕表定位频率值 // MARK: update by lsz 2021-06-23
@property (nonatomic, strong) NSString *location_model1; // 省电模式
@property (nonatomic, strong) NSString *location_model2; // 正常模式
@property (nonatomic, strong) NSString *location_model3; // 低频模式
@property (nonatomic, copy) NSString *location_model1; // 省电模式
@property (nonatomic, copy) NSString *location_model2; // 正常模式
@property (nonatomic, copy) NSString *location_model3; // 低频模式
@property (nonatomic, strong) NSNumber *location_interval1; // 省电模式定位频率
@property (nonatomic, strong) NSNumber *location_interval2; // 正常模式定位频率
@property (nonatomic, strong) NSNumber *location_interval3; // 低频模式定位频率
@property (nonatomic, strong) NSString *model; // 设备型号
@property (nonatomic, strong) NSNumber *deviceType; // 设备类型
@property (nonatomic, copy) NSNumber *location_interval1; // 省电模式定位频率
@property (nonatomic, copy) NSNumber *location_interval2; // 正常模式定位频率
@property (nonatomic, copy) NSNumber *location_interval3; // 低频模式定位频率
@property (nonatomic, copy) NSString *model; // 设备型号
@property (nonatomic, copy) NSNumber *deviceType; // 设备类型
@property (nonatomic, strong) NSNumber *opDialSwitch; // 拨号盘
@property (nonatomic, copy) NSNumber *opDialSwitch; // 拨号盘
/**
0 4 5 6
*/
@property (nonatomic, strong) NSNumber *support_video;
@property (nonatomic, copy) NSNumber *support_video;
/**
*/
@property (nonatomic, strong) NSNumber *support_photo;
@property (nonatomic, copy) NSNumber *support_photo;
/**
*/
@property (nonatomic, strong) NSNumber *support_step;
@property (nonatomic, copy) NSNumber *support_step;
/**
*/
@property (nonatomic, strong) NSNumber *support_find;
@property (nonatomic, copy) NSNumber *support_find;
/**
*/
@property (nonatomic, strong) NSNumber *support_costFlow;
@property (nonatomic, copy) NSNumber *support_costFlow;
/**
*/
@property (nonatomic, strong) NSNumber *support_flower;
@property (nonatomic, copy) NSNumber *support_flower;
/**
WIFI
*/
@property (nonatomic, strong) NSNumber *support_wifi;
@property (nonatomic, copy) NSNumber *support_wifi;
/**
*/
@property (nonatomic, strong) NSNumber *support_timingSwitch;
@property (nonatomic, copy) NSNumber *support_timingSwitch;
/**
*/
@property (nonatomic, strong) NSNumber *support_temperature;
@property (nonatomic, copy) NSNumber *support_temperature;
/**
*/
@property (nonatomic, strong) NSNumber *support_heartRate;
@property (nonatomic, copy) NSNumber *support_heartRate;
/**
*/
@property (nonatomic, strong) NSNumber *support_whiteList;
@property (nonatomic, copy) NSNumber *support_whiteList;
/**
*/
@property (nonatomic, strong) NSNumber *support_hht;
@property (nonatomic, copy) NSNumber *support_hht;
/**
*/
@property (nonatomic, strong) NSNumber *support_downDial;
@property (nonatomic, copy) NSNumber *support_downDial;
/**
*/
@property (nonatomic, strong) NSNumber *support_monitor;
@property (nonatomic, copy) NSNumber *support_monitor;
/**
*/
@property (nonatomic, strong) NSNumber *support_alarm;
@property (nonatomic, copy) NSNumber *support_alarm;
/**
*/
@property (nonatomic, strong) NSNumber *support_disturb;
@property (nonatomic, copy) NSNumber *support_disturb;
/**
SOS号码
*/
@property (nonatomic, strong) NSNumber *support_sos;
@property (nonatomic, copy) NSNumber *support_sos;
/**
*/
@property (nonatomic, strong) NSNumber *support_blood;
@property (nonatomic, copy) NSNumber *support_blood;
/**
*/
@property (nonatomic, strong) NSNumber *support_oxygen;
@property (nonatomic, copy) NSNumber *support_oxygen;
/**
*/
@property (nonatomic, strong) NSNumber *support_callPhone;
@property (nonatomic, copy) NSNumber *support_callPhone;
/**
*/
@property (nonatomic, strong) NSNumber *support_safeArea;
@property (nonatomic, copy) NSNumber *support_safeArea;
/**
*/
@property (nonatomic, strong) NSNumber *support_chat;
@property (nonatomic, copy) NSNumber *support_chat;
/**
*/
@property (nonatomic, strong) NSNumber *support_ppFriend;
@property (nonatomic, copy) NSNumber *support_ppFriend;
/**
*/
@property (nonatomic, strong) NSNumber *support_schedul;
@property (nonatomic, copy) NSNumber *support_schedul;
/**
*/
@property (nonatomic ,strong) NSNumber *battery;
@property (nonatomic ,copy) NSNumber *battery;
/**
()
*/
@property (nonatomic ,strong) NSNumber *max_level;
@property (nonatomic ,copy) NSNumber *max_level;
/// 类型
@property (nonatomic ,strong) NSString *modules;
@property (nonatomic ,copy) NSString *modules;
/**
*/
@property (nonatomic ,strong) NSNumber *support_family;
@property (nonatomic ,copy) NSNumber *support_family;
/**
jjm
*/
@property (nonatomic ,strong) NSNumber *support_healthCode;
@property (nonatomic ,copy) NSNumber *support_healthCode;
///jjmTitle
@property (nonatomic ,strong) NSString *qrcodeCN;
@property (nonatomic ,copy) NSString *qrcodeCN;
/// 是否支持设备防丢
@property (nonatomic ,strong) NSNumber *support_BT_Avoid_Losing;
@property (nonatomic ,copy) NSNumber *support_BT_Avoid_Losing;
/// 是否支持短信
@property (nonatomic ,strong) NSNumber *support_sms;
@property (nonatomic ,copy) NSNumber *support_sms;
/// 是否支持核酸码
@property (nonatomic ,strong) NSNumber *support_hsCode;
@property (nonatomic ,copy) NSNumber *support_hsCode;
/// 是否支持应用管理
@property (nonatomic ,strong) NSNumber *support_appControl;
@property (nonatomic ,copy) NSNumber *support_appControl;
/**
线
*/
@property (nonatomic ,strong) NSNumber *onlineStatus;
@property (nonatomic ,copy) NSNumber *onlineStatus;
/**
()
*/
@property (nonatomic ,strong) NSNumber *curr_level;
@property (nonatomic ,copy) NSNumber *curr_level;
@property (nonatomic, strong) NSNumber *upDownNotice;
@property (nonatomic, copy) NSNumber *upDownNotice;
@property (nonatomic, strong) NSNumber *fall_status;
@property (nonatomic, copy) NSNumber *fall_status;
@property (nonatomic, strong) NSString *gps_strategy;
@property (nonatomic, copy) NSString *gps_strategy;
@property (nonatomic, strong) Locate *lastLocation;
@property (nonatomic, copy) Locate *lastLocation;
/**
girl , man default 30 girl
*/
@property (nonatomic, strong) NSString *sex;
@property (nonatomic, copy) NSString *sex;
/**
default now day
*/
@property (nonatomic, strong) NSString *birthday;
@property (nonatomic, copy) NSString *birthday;
/**
default 100
*/
@property (nonatomic, strong) NSString *height;
@property (nonatomic, copy) NSString *height;
/**
default 30
*/
@property (nonatomic, strong) NSString *weight;
@property (nonatomic, copy) NSString *weight;
/**
*/
@property (nonatomic, strong) NSString *my_phone;
@property (nonatomic, copy) NSString *my_phone;
/**
*/
@property (nonatomic, strong) NSString *identity;
@property (nonatomic, copy) NSString *identity;
/**
eg : ,, ... default
*/
@property (nonatomic, strong) NSString * relationship;
@property (nonatomic, copy) NSString * relationship;
/**
ID default 9
*/
@property (nonatomic, strong) NSNumber * relationship_image_id;
@property (nonatomic, copy) NSNumber * relationship_image_id;
/**
*/
@property (nonatomic, strong) NSString *lastHeartRate;
@property (nonatomic, copy) NSString *lastHeartRate;
/**
*/
@property (nonatomic, strong) NSNumber *lastHeartRateTime;
@property (nonatomic, copy) NSNumber *lastHeartRateTime;
/**
*/
@property (nonatomic, strong) NSString *lastTemperature;
@property (nonatomic, copy) NSString *lastTemperature;
/**
*/
@property (nonatomic, strong) NSNumber *lastTemperatureTime;
@property (nonatomic, copy) NSNumber *lastTemperatureTime;
- (UIImage *)getImageWithRim:(CGSize)size;

5
tongxin/xBase/Model/Device.m

@ -441,6 +441,7 @@ @@ -441,6 +441,7 @@
failure:(void (^)(void))failure{
NSString *urlStr = [MyHttp getURL:HTTP_DEVICES__VIDEO_USER_LIST
objArr:@[self]];
NSLog(@"%@",cUser.cDevice);
[xMyHttp URL:urlStr
method:@"GET" parameters:nil
success:^(NSURLSessionDataTask *task, id responseObject)
@ -706,7 +707,7 @@ @@ -706,7 +707,7 @@
success(responseObject);
} else {
if (failure) {
NSString *domain = @"com.zuoyebang.iot.watch";
NSString *domain = @"com.ecellsz.lekang.guard";
NSDictionary *userInfo = @{@"msg" : responseObject[@"msg"]};
NSError *err = [NSError errorWithDomain:domain code:-1 userInfo:userInfo];
failure(err);
@ -734,7 +735,7 @@ @@ -734,7 +735,7 @@
success(responseObject);
} else {
if (failure) {
NSString *domain = @"com.zuoyebang.iot.watch";
NSString *domain = @"com.ecellsz.lekang.guard";
NSDictionary *userInfo = @{@"msg" : responseObject[@"msg"]};
NSError *err = [NSError errorWithDomain:domain code:-1 userInfo:userInfo];
failure(err);

40
tongxin/xBase/Model/User.h

@ -22,28 +22,28 @@ @@ -22,28 +22,28 @@
/**
SDK的Key
*/
@property (nonatomic, strong) NSString *juphoonKey;
@property (nonatomic, copy) NSString *juphoonKey;
@property (nonatomic, strong) NSString *openid;
@property (nonatomic, strong) NSString *accesstoken;
@property (nonatomic, copy) NSString *openid;
@property (nonatomic, copy) NSString *accesstoken;
@property (nonatomic, strong) NSMutableArray *myDevices;
@property (nonatomic, strong) NSMutableArray *ownedDevices;
@property (nonatomic, strong) NSMutableArray *chatGroupDevices;
@property (nonatomic, copy) NSMutableArray *myDevices;
@property (nonatomic, copy) NSMutableArray *ownedDevices;
@property (nonatomic, copy) NSMutableArray *chatGroupDevices;
@property (nonatomic, strong) NSMutableArray *chatGroups;
@property (nonatomic, copy) NSMutableArray *chatGroups;
//@property (nonatomic, strong) NSMutableArray *myFamily;//家庭成员
@property (nonatomic, strong) Device *cDevice;
@property (nonatomic, copy) Device *cDevice;
//@property (nonatomic, strong) NSNumber *locate_offset;
@property (nonatomic, strong) NSString *user_email;
@property (nonatomic, strong) NSNumber *share_locate;
@property (nonatomic, copy) NSString *user_email;
@property (nonatomic, copy) NSNumber *share_locate;
/**
(102)
@ -52,35 +52,35 @@ @@ -52,35 +52,35 @@
//@property (nonatomic, strong) NSMutableArray *myDevice;
@property (nonatomic, strong) NSMutableArray *questions;
@property (nonatomic, copy) NSMutableArray *questions;
@property (nonatomic, strong) CLLocation *curLocation;
@property (nonatomic, copy) CLLocation *curLocation;
/**
imei号登录时的imei号 15,14,10 (imei) 11 ()
*/
@property (nonatomic, strong) NSString *loginName;
@property (nonatomic, copy) NSString *loginName;
/**
,
*/
@property (nonatomic, strong) NSString *wx_name;
@property (nonatomic, copy) NSString *wx_name;
/**
0 1
*/
@property (nonatomic, strong) NSNumber *wx_status;
@property (nonatomic, copy) NSNumber *wx_status;
/**
10
*/
@property (nonatomic, strong) NSNumber *account_status;
@property (nonatomic, strong) NSString *wxid;
@property (nonatomic, strong) NSString *qqid;
@property (nonatomic, copy) NSNumber *account_status;
@property (nonatomic, copy) NSString *wxid;
@property (nonatomic, copy) NSString *qqid;
/**
*/
@property (nonatomic, strong) NSString *BRVideoKey;
@property (nonatomic, strong) NSNumber *bairui_id;
@property (nonatomic, copy) NSString *BRVideoKey;
@property (nonatomic, copy) NSNumber *bairui_id;

2
tongxin/xBase/Model/baseModel.h

@ -16,7 +16,7 @@ @@ -16,7 +16,7 @@
@interface baseModel : NSObject
@interface baseModel : NSObject<NSCoding,NSCopying>
@property (nonatomic, strong) NSString *id;
@property (nonatomic, strong) NSNumber *status;

31
tongxin/xBase/Model/baseModel.m

@ -56,4 +56,35 @@ @@ -56,4 +56,35 @@
}
}
- (void)encodeWithCoder:(NSCoder *)aCoder
{
[self yy_modelEncodeWithCoder:aCoder];
}
- (id)initWithCoder:(NSCoder *)aDecoder
{
self = [super init];
return [self yy_modelInitWithCoder:aDecoder];
}
- (id)copyWithZone:(NSZone *)zone
{
return [self yy_modelCopy];
}
- (NSUInteger)hash
{
return [self yy_modelHash];
}
- (BOOL)isEqual:(id)object
{
return [self yy_modelIsEqual:object];
}
- (NSString *)description
{
return [self yy_modelDescription];
}
@end

Loading…
Cancel
Save