环信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 ...
随机推荐
- Syntax error missing ; before *
[问题] I have a header file like so: #pragma once #include "gamestate.h" #include "Ex ...
- Logcat用法初探
首先定位到adb所在的目录 将手机连接上电脑. 在命令行运行: adb devices 这个命令可以列出所有连上的移动设备. 在命令行运行: adb logcat 可以显示日志. 以下是例子截图: ...
- 面试题04_替换空格_剑指Offer系列
题目描写叙述 请实现一个函数,将一个字符串中的空格替换成"%20". 比如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 解题思路 ...
- artTemplate 原生 js 模板语法版
在页面中引用模板引擎: <script src="dist/template-native.js"></script> 下载 表达式 <% 与 %&g ...
- ReSharper修改命名风格
默认情况下,ReSharper会建议你全局变量命名使用下划线开头,且第一个字母小写.否则,会给你标记出来,如下: 但我个人不喜欢这种风格,一般使用首字母大写且不带下划线,可以通过配置来调整:ReSha ...
- Linux中查看系统版本的方法
一.Linux系统中,XShell连接进去之后,查看系统版本的方法如下: 1.查找release文件 find /etc/ -name *-release 例如: 或者 2.查看release文件 c ...
- 深度学习-Windows平台下的Caffe编译教程
一.安装CUDA7.5 Cuda是英伟达推出的GPU加速运算平台 我这里安装的是cuda7.5,已经安装过的忽略,还没有安装过的这里有安装教程.windows下面安装还是非常简单的. https:// ...
- 005-Go 操作PostgreSQL数据库
package main import( "fmt" "database/sql" _ "github.com/lib/pq" " ...
- win7下安装matlab后打开出错“error starting desktop”的解决办法
在matlab快捷图标上右键,选择"还原以前的版本"--"兼容性"选项卡,在"以兼容模式运行这个程序"前面打勾,并选择"windo ...
- vue key
有相同父元素的子元素必须有独特的 key.重复的 key 会造成渲染错误. <ul> <li v-for="item in items" :key="i ...