React-Native使用小发现
来源:互联网 发布:opencv 分水岭算法 编辑:程序博客网 时间:2024/06/05 15:04
参考:http://blog.csdn.net/pz789as/article/details/52823985
1、今天接入驰声语音库,发现了一个解决不了的警告:
RCTBridge required dispatch_sync to load xxxxx. This may lead to deadlocks
Required dispatch_sync to load constants for xxxxx. This may lead to deadlocks
后面发现是因为模拟器接入浏览器调试才会出现,如果不适用浏览器调试,就不会弹出这个警告。
2、录音和播放的错误,这两个一起使用的时候,录音启动失败,调用AudioQueueStart 返回-50,这是因为AVAudioSession重复了,需要重新设置。
在调用AudioQueueStart之前,调用下面的程序就可以解决了。
AVAudioSession * session = [AVAudioSession sharedInstance]; if (!session) printf("ERROR INITIALIZING AUDIO SESSION! \n"); else{ NSError* nsError; [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&nsError]; if (nsError) { NSLog(@"couldn't set audio category!"); } [session setActive:YES error:&nsError]; if (nsError) { NSLog(@"AudioSession setActive = YES failed"); } }
3、RCT_REMAP_METHOD的使用,要注意如果是两个函数名不同,但是参数是一样的,就会出错:
RCT_REMAP_METHOD(getPcmCurrentTime, resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject){ resolve([[NSNumber alloc]initWithDouble:[_pcmPlayer getCurrentTime]]);}RCT_REMAP_METHOD(initPcm, resolver:(RCTPromiseResolveBlock)resolve rejecter:(RCTPromiseRejectBlock)reject){ resolve([[NSNumber alloc]initWithDouble:[_pcmPlayer getCurrentTime]]);}上面这样不行,以下情况可以使用:
只要是参数数量不同,或者参数数量一样,参数名字不一样就可以。
与参数类型无关,类型不同,其他一样是不行的。
4、关于字符串:平时字符串拼接时直接使用+或者format之类的,最近发现有个很好的方法,使用“`${}`”表达式。
如:
var w = 100;
var text = `based width is: ${w}`;
输出得到的结果就是 "based width is: 100"
5、关于RN原生模块的命名问题,2016年11月14号在做一个twitter登陆时,自定了一个原生模块,然后命名为RCTTwitter,其他都按照官网的设置,然后在JS端调用时,无法检测到该模块。在试了一天,排查所有错误后,自己重新建了一个不带RCT前缀的原生模块类,结果导出之后可以找到!~~
由此个人推断:在创建自定义原生模块时,命名一定要注意,不能带RCT前缀。RCT前缀适用于原生View,搭配RCT***Manager一起使用,可能是RN内部设置。
6、在实际开发中,IOS使用模拟器调试时,经常按cmd+R键进行重新load操作。但是有时候按的不对时,就会按到cmd+T键,如果在不知情的情况下,你将会看到模拟器运行起来特别的卡顿,这是为什么呢?经过我自己的排查,终于发现问题所在!原来就是按到cmd+T快捷键了,那么这个快捷键是做什么用的呢?我在模拟器的菜单栏里面就找到了这么一个说明:在Debug选项中,第一个就是cmd+T快捷键,“Slow Animations”,从字面意思应该是缓慢的动画,由此就知道了为什么会变慢了~你只要再按一次cmd+T,或者通过菜单栏把那一项勾掉即可!!
- React-Native使用小发现
- React Native小笔记
- React Native顶-底部导航使用小技巧
- React Native顶-底部导航使用小技巧
- React-Native键盘遮挡问题进阶发现
- react-native安装使用
- react-native使用flux
- 开始使用React Native
- React Native Button使用
- React Native 属性使用
- React-Native 安装使用
- React-Native AsyncStorage使用
- react-native listview使用
- react-native-storage使用
- React Native Webview使用
- React-Native Realm使用
- React-Native SectionList使用
- react-native Modal使用
- Mac Item2 SSH免密登录Linux 服务器的两种方式
- charles高级使用总结
- RY哥查字典(字符串双模hash初步)
- JAVAEE项目遇到的问题
- 基本算法-股神
- React-Native使用小发现
- 【POJ 1061 青蛙的约会】 + 扩展欧几里德
- Android中像素和Dip之间的转换
- VIM配置-傻瓜版
- CSS3高级特性之二维动画
- 【Linux 内核网络协议栈源码剖析】connect 函数剖析(二)
- 线性表的学习之路
- 如何阅读Java源码 阅读java的真实体会
- 微信 jssdk获取经纬度转换成百度的经纬度