第一份代码,为了纠正原代码不显示29号的bug,先上代码

  1. require('NSString','MCDatePickType','NSMutableArray','UIButton');
  2.  
  3. defineClass('MMCDatePickView',{
  4.  
  5. setDatePickViewSelected: function() {
  6.  
  7. self.setSelectedYearRow(self.yearArray().indexOfObject(self.currentYearString()));
  8. self.setSelectedDayRow(self.DaysArray().indexOfObject(self.currentDayString()));
  9. self.setSelectedHourRow(self.hoursArray().indexOfObject(self.currentHourString()));
  10. self.setSelectedMinuteRow(self.minutesArray().indexOfObject(NSString.stringWithFormat("%@分", self.currentMinuteString())));
  11.  
  12. // 设置年和月
  13. var MonthAndYear = self.currentYearString().toJS() + '年' + self.currentMonthString().toJS() + '月';
  14.  
  15. if (self.type() === 0) {
  16.  
  17. for (var i = 0; i < self.yearArray().count(); i++) {
  18.  
  19. var jsArray = self.yearArray().toJS();
  20. var year = jsArray[i];
  21. if (year == self.currentYearString().toJS()) {
  22.  
  23. self.datePickView().selectRow_inComponent_animated(i, 0, YES);
  24.  
  25. break;
  26. }
  27. }
  28.  
  29. }
  30. else {
  31.  
  32. self.setSelectedMonthRow(self.yearAndMonthArray().indexOfObject(MonthAndYear));
  33. self.datePickView().selectRow_inComponent_animated(self.selectedMonthRow(), 0, YES);
  34.  
  35. if (self.type() !== 0 && self.type() !== 1 && self.type() !== 5) {
  36. self.datePickView().selectRow_inComponent_animated(self.selectedDayRow(), 1, YES);
  37. }
  38.  
  39. //选中小时
  40. if (self.type() === 3 || self.type() === 4) {
  41. self.datePickView().selectRow_inComponent_animated(self.selectedHourRow(), 2, YES);
  42. }
  43.  
  44. //选中分
  45. if (self.type() === 4) {
  46. self.datePickView().selectRow_inComponent_animated(self.selectedMinuteRow(), 3, YES);
  47. }
  48.  
  49. // 选中自定义的
  50. if (self.type() === 5) {
  51. self.datePickView().selectRow_inComponent_animated(self.customerIndex(), 0, YES);
  52. }
  53. }
  54. }
  55. });

注意事项:

1.在对字符或者数组,字典操作的时候应该转成js的字符串或者字典,等等

var MonthAndYear = self.currentYearString().toJS() + '年' + self.currentMonthString().toJS() + '月';

上边的代码是正确的,MonthAndYear 就是js格式的字符串,下边的是不对的:

  1. var MonthAndYear = self.currentYearString() + '年' + self.currentMonthString() + '月';

2.在进行比较的时候,使用相同类型,js的数据类型和oc的不一样

  1. var jsArray = self.yearArray().toJS();
  2. var year = jsArray[i];
  3. if (year == self.currentYearString().toJS()) {
  4.  
  5. self.datePickView().selectRow_inComponent_animated(i, 0, YES);
  6.  
  7. break;
  8. }

3.js 是弱类型语言,不强调类型,oc的枚举在js中不好使,

self.type() === 0

最终还是把枚举转成了基本数据类型

ios使用jspatch中需要注意的事项的更多相关文章

  1. iOS开发 Xcode8中遇到的问题及改动

      iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动. 一个一个填吧... 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功能,或者苹果健康 ...

  2. ITMS-SERVICES://方式安装IPA在IOS 7.1中的变化

    转:https://laoyur.com/?p=414 iOS7.1中,通过itms-services://方式安装ipa已经发生了改变,.plist文件必须是https://的,.ipa文件的链接则 ...

  3. iOS 在cell中使用倒计时的处理方法(新)

    一.前言 之前的文章iOS 在cell中使用倒计时的处理方法得到大量的支持, 在这先感谢大家的支持. 但是也收到不少人的回复表示不会用, 需要一一解答, 由于之前写的时候没有使用Markdown编辑, ...

  4. iOS开发——基础篇——iOS开发 Xcode8中遇到的问题及改动

      iOS开发 Xcode8中遇到的问题及改动 新版本发布总会有很多坑,也会有很多改动. 一个一个填吧... 一.遇到的问题 1.权限以及相关设置 iOS10系统下调用系统相册.相机功能,或者苹果健康 ...

  5. iOS 解决LaunchScreen中图片加载黑屏问题

    iOS 解决LaunchScreen中图片加载黑屏问题 原文: http://blog.csdn.net/chengkaizone/article/details/50478045 iOS 解决Lau ...

  6. JSPatch 中 defineClass 中覆盖方法的使用

    今天研究了一下JSPatch,发现好神奇好奇妙,感觉这几天我都会乐此不彼的去研究这个高大上的东西. 出处来着:https://github.com/bang590/JSPatch 简单介绍一下这个 d ...

  7. unity导出工程导入到iOS原生工程中详细步骤

    一直想抽空整理一下unity原生工程导入iOS原生工程中的详细步骤.做iOS+vuforia+unity开发这么长时间了.从最初的小小白到现在的小白.中间趟过了好多的坑.也有一些的小小收货.做一个喜欢 ...

  8. iOS原生项目中集成React Native

    1.本文的前提条件是,电脑上已经安装了CocoaPods,React Native相关环境. 2.使用Xcode新建一个工程.EmbedRNMeituan [图1] 3.使用CocoaPods安装Re ...

  9. iOS:项目中疑难Crash问题集锦

    项目中疑难Crash问题集锦 iOS App运行中遇到Crash的情况相信大家都遇到过,开发和者测试中遇到了可能很方便的办法就是直接拿着设备连接一下,然后使用Xcode自带的工具就可以解析出Crash ...

随机推荐

  1. Struct2 csv文件上传读取中文内容乱码

    网络上搜索下,发现都不适合 最终改写代码: FileInputStream fis = null; InputStreamReader isr = null; BufferedReader br= n ...

  2. Mimikatz 使用Tips

    1.记录 Mimikatz输出: C:\>mimikatz.exe ""privilege::debug"" ""log sekurl ...

  3. IOS ASI http 框架详解

    本文转自:http://my.oschina.net/sunqichao/blog/75011 ASIHTTPRequest对CFNetwork API进行了封装,并且使用起来非常简单,用Object ...

  4. Unity3D 物体跟随鼠标旋转

    float speed=1000f; void Update () { if (Input.GetMouseButton (0)) { transform.Rotate (0,-Input.GetAx ...

  5. Android课程---关于Service的学习(后台运行)

    MainActivity.java package com.hanqi.test2; import android.content.ComponentName; import android.cont ...

  6. Tomcat 中响应头信息(Http Response Header) Content-Length 和 Transfer-Encoding

    户端(PC浏览器或者手机浏览器)在接受到Tomcat的响应的时候,头信息通常都会带上Content-Length ,一般情况下客户端会在接受完Content-Length长度的数据之后才会开始解析.而 ...

  7. android输入限制

    title: 2016-5-30 Android输入验证 tags: EditText,输入验证 --- 前言2 使用EditText让用户输入文字时,需要对输入验证.除过验证是否有效的逻辑不同,Ed ...

  8. TaintDroid剖析之DVM变量级污点跟踪(下篇)

    TaintDroid剖析之DVM变量级污点跟踪(下篇)作者:简行.走位@阿里聚安全 ​ 1 回顾 在上一章节中我们详细分析了TaintDroid对DVM方法参数和方法变量的变量级污点跟踪机制,现在我们 ...

  9. 七天学会ASP.NET MVC (五)——Layout页面使用和用户角色管理

    系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)— ...

  10. 谁占了我的端口 for Windows

    这篇文章发布于我的 github 博客:原文 今天在本地调试 Blog 的时候意外的出现了一些错误:127.0.0.1 4000 端口已经被其他的进程占用了.如何找到占用端口的进程呢? Configu ...