环信EaseUI集成错误 Unknown type name 'NSString' NSLocalizedString
环信集成本来认为很简单的,有现成的UI,照着文档直接傻瓜操作就行,没曾想聊天记录不能长时间保存,于是乎就有了这篇记录环信坑的笔记
在下载的环信的SDK时候里面会有两个包,一个完整版的,一个简洁版的,导入工程的时候只需要集成其中一个就行,如果导入两个则会报错
问题一 集成的时候定位到NSString的错误,错误如下图
解决方法:在自己工程的pch文件中添上
#ifdef __OBJC__
#endif 这两个一定要在pch文件的头部和尾部,要包括所有的pch文件的内容
问题二 定位到NSLocalizedString的错误
解决方法:在自己pct文件中添加 #define NSEaseLocalizedString(key, comment) [[NSBundle bundleWithURL:[[NSBundle mainBundle] URLForResource:@"EaseUIResource"withExtension:@"bundle"]] localizedStringForKey:(key) value:@"" table:nil]
问题三 再导入环信的时候,里面已经集成了一些常用的第三方,会与工程中的第三方冲突删除即可, 另外在resource文件中有一个plist文件,据说这个plist文件会导致上传出现错误,但没有验证,发现删除之后没报什么错误,就果断删之 如下图
上面的集成问题一般都是这些,至于使用环信的错误一般都会有错误码,可对照环信文档错误码来对照排除错误,下面说下一些关于
聊天记录在自己服务器保存的问题,上面提到环信不会长时间保存聊天记录,所以如果长时间需要保存聊天记录的话就需要咱们自己做保存,另外 环信的聊天记录都是从本地读取的,删除聊天记录也是删除本地的,至于表情则是文本(NSString类型),而且手机端和web端的表情也不一样(你会发现你发过去一个笑脸,到那边会是一个皱眉或者一个哭脸,这是逗为什么不做统一呢)
聊天记录保存 : 聊天保存的话这就需要和后台来制定自己的规则了,可以在发送信息的时候来保存,也可以后台通过方法从环信服务器导出方法,但这个导出只能导出最近三天的,而且还不能根据某个会话单独导出记录,所以这个方法并不是太好,在此我是发送信息保存的(这样保存如果一旦保存失败则会没有这条聊天记录,没发弥补)
表情不同:表情不同直接跟web端对照有哪些不同,发现大多数表情对应的寓意还是相同,就是表情不一样,这样都好办了,寓意相同就行,在SDK中有这样一个类 #import"EaseConvertToCommonEmoticonsHelper.h" 里面对应的是两个方法,直接和web端同意就行
加载服务器消息: 既然聊天记录自己保存了,肯定要加载咱们自己的聊天记录啦,这里加载的话可以首先构造消息写入本地,然后插入到本地,构建模型EaseMessageModel,保存到dataArray中,刷新UI,当然这是我的做法也会有其他的做法,如果出现标志发送失败的标记的话直接在构造消息的时候设置消息属性就行,
设置头像和昵称
- (id<IMessageModel>)messageViewController:(EaseMessageViewController *)viewController
modelForMessage:(EMMessage *)message
{
id<IMessageModel> model = nil;
model = [[EaseMessageModel alloc] initWithMessage:message];
if (model.isSender) {
自己发送 头型昵称直接设置model属性就行
}else{
别人发送
}
原文:http://blog.csdn.net/jx_zls/article/details/53982421
环信EaseUI集成错误 Unknown type name 'NSString' NSLocalizedString的更多相关文章
- 环信easeui集成:坑总结2018
环信EaseUI 集成,集成不做描述,看文档即可,下面主要谈一些对easeui的个性化需求修改. 该篇文章将解决的问题: 1.如何将App用户体系的用户名和用户头像 显示于环信的easeui 2.如何 ...
- 环信easeui集成:坑总结2018(二)
环信EaseUI 集成,集成不做描述,看文档即可,下面主要谈一些对easeui的个性化需求修改. 该篇文章将解决的问题: 1.如何发送视频功能 2.未完待续.. ------------------- ...
- 李洪强iOS开发之-环信03_集成 SDK 基础功能
李洪强iOS开发之-环信03_集成 SDK 基础功能 集成 SDK 基础功能 在您阅读此文档时,我们假定您已经具备了基础的 iOS 应用开发经验,并能够理解相关基础概念. SDK 同步/异步方法区分 ...
- iOS开发——导入第三方库引起的unknown type name 'NSString'
今天加入SVProgressHUD的第三方库的时候报了24个错误( too many errors emitted, stopping now),都是 expected identifier or ' ...
- unknow Unknown type name 'NSString'
转载:geweb 今天看到个问题,编辑工程提示Unknown type name 'NSString',如下图 导致出现异常的原因是是因为工程中添加了ZipArchive(第三方开源解压缩库) 一般情 ...
- Unknown type name 'NSString' 解决方案
今天看到个问题,编辑工程提示Unknown type name 'NSString',如下图 导致出现异常的原因是是因为工程中添加了ZipArchive(第三方开源解压缩库) 一般情况下出现“Unkn ...
- Unknown type name 'NSString'
今天看到个问题,编辑工程提示Unknown type name 'NSString',如下图 导致出现异常的原因是是因为工程中添加了ZipArchive(第三方开源解压缩库) 一般情况下出现“Unkn ...
- 由于源码使用是c\c++与oc混编导致Unknown type name 'NSString'
今天看到个问题,编辑工程提示Unknown type name 'NSString',如下图 解决方案三: 将Compile Sources As 改为 Objective-C++
- 环信SDK集成
利用环信SDK可以实现即时通讯,但在集成的过程中碰到了不少的坑. 注意 选择项目路径,这里以最新版环信demo为例 注意:环信的ChatDemoUI这个demo里边因为研发的同事为了照顾老版本的And ...
随机推荐
- java 大文件上传 断点续传 完整版实例 (Socket、IO流)
ava两台服务器之间,大文件上传(续传),采用了Socket通信机制以及JavaIO流两个技术点,具体思路如下: 实现思路: 1.服:利用ServerSocket搭建服务器,开启相应端口,进行长连接操 ...
- 关于ZedGraph几个难点
1.引言 由于工作原因,需要对数据进行图表展示,.NET默认的控件库或者DotNetBar的控件库又不能满足需求.去网上找到了这个开源的ZedGraph绘制2D图表的程序集,之所以选择这个ZedGra ...
- 使用visual studio code调试php代码
这回使用visual studio code折腾php代码的调试,又是一顿折腾,无论如何都进不了断点.好在就要放弃使用visual studio code工具的时候,折腾好了,汗~ 这里把步骤记录下来 ...
- js开发思路
$.ui = $.ui || {}; var version = $.ui.version = "1.12.1"; // 是否为ie浏览器 var ie = $.ui.ie = ! ...
- 微信小程序 - async/await
下面只是做一些介绍以及使用的原因,详情介绍还请移步博主:https://www.cnblogs.com/SamWeb/p/8417940.html regenerator-runtime下载:http ...
- JERSEY中文翻译(第三章、JAX-RS Application, Resources and Sub-Resources)
JAX-RS Application Resource and Sub-Resource 本章要介绍的是JAX-RS的核心概念——Resouce.Sub-Resource JAX-RS的2.0的jav ...
- java相关知识集锦
java语言基础知识: Java8 Stream语法详解 不用循环 java 8系列之Stream的基本语法详解 java8 stream filter等功能代替for Java中try catch ...
- ng-class ng-style
https://docs.angularjs.org/api/ng/directive/ngClass 翻译 表达式生成一个空格饭分隔的class字符串 一个对象,它的每一个key在其值为true的时 ...
- js模板 arttemplate 让数据与html分离
js模板引擎 前后交互过程中最麻烦的就是如何将json数据展示到页面中,循环拼接html的方法实在是太low了,饱受其苦,BAT同样会遇到这样的问题,于是乎就有个各自的js模板引擎,目的只有一个:让数 ...
- 创建Python程序
1. 创建Python程序 欢迎来到Python世界! 本系列文章告诉你怎么样编写Python程序.Python仅仅是一种文本文件.跟普通文本文件是一样的,仅仅只是这样的文本文件不但能够看,还能够在P ...