使用JSPatch中遇到的难点(一)

昨天提交一个版本,今天发现居然开始审核了,还过了,发现了几个问题,蛮严重的,要修复。
使用 * JSPatchConvertor * 工具将相关OC转换后直接运行crash,解决了如下几个问题后,才正常工作。

1 、宏

//原代码 topicDetailCellidentifier 为一个宏
ZZTopicDetailCell *cell = [tableView dequeueReusableCellWithIdentifier:topicDetailCellidentifier];
//js代码 将原代码中的宏用宏真实值代替
var cell = tableView.dequeueReusableCellWithIdentifier("topicDetailCellidentifier");

2、枚举值

//原代码 UITableViewCellSelectionStyleNone 为一个枚举类型的值
cell.selectionStyle = UITableViewCellSelectionStyleNone;
//js代码 将原代码中的枚举类型的值用具体的数字值代替
cell.setSelectionStyle(0);

3、cell赋值

这是卡的时间最长的,且没有在文档中找到解决方法的。

//原代码
cell.replayModel = self.replayList[indexPath.row];
//js代码 将数据源 数组调用 * toJS * 方法后,给cell赋值才成功,不调用,赋的值为nil
var array = self.replayList().toJS();
cell.setReplayModel(array[indexPath.row()]);

4、重写setter方法

//原代码

  • (void)setMoreModel:(ZZTopicMoreDataModel *)moreModel{
    _moreModel = moreModel;
    .......
    }
    //js代码 只找到这一种方法
    self.setValue_forKey(moreModel, "_moreModel");

5、CGRectGetMaxY

//原代码
_lineView.zz_y = CGRectGetMaxY(_shareCV.frame);
//js代码
_lineView.zz_y = self.shareCV().frame().y + self.shareCV().frame().height;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS开发系列--网络开发 概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博、微信等,这些应用本身可...
    lichengjin阅读 3,721评论 2 7
  • iphone开发笔记 退回输入键盘 - (BOOL) textFieldShouldReturn:(id)text...
    爱易寒曲易散阅读 631评论 0 1
  • 1、禁止手机睡眠 [UIApplication sharedApplication].idleTimerDisab...
    小小夕舞阅读 1,507评论 1 1
  • 今天继续进行对框架的完善。
    422d602c244f阅读 94评论 0 0
  • 治病选药,我们首先就会注意药物有什么样的功效,能够起到什么样的作用,只有对症了才能够起到治疗的目的。确实,不管是在...
    U839r6R9阅读 142评论 0 0