React-Native使用小发现

参考: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,或者通过菜单栏把那一项勾掉即可!!





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苏小败在路上

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值