美文网首页
开发问题笔记(七)

开发问题笔记(七)

作者: Kevin_wzx | 来源:发表于2019-02-25 18:12 被阅读0次

    目录

    1.后台返回数值类型,用字符串接收遇到的问题
    2.iOS 从0到1搭建高可用App框架
    3.六天完成一个简单APP的全过程
    4.iOS个人开发自己的APP
    5.block的问题
    6.clipsToBounds和masksToBounds的区别
    7.在线转模型工具
    8.json在线格式化
    9.状态栏的使用总结
    10.让UITextFiled键盘收起的小方法
    11.加减按钮
    12.创建窗口视图时候的bug
    13.APP更新
    14.iOS中几种定时器
    15.KVC/KVO/NSNotification区分
    16.数字转String
    17.UITextField填写完以后回调
    18.两个字符串做运算
    19.cell/视图封装的BOOL判断控件布局
    20.加减按钮的实现
    21.左右tableView的cell标志符使用
    22.self.navigationController退出到指定页面,或者一次性pop出n个页面
    23.App的AppIcon设置
    24.App的启动页LaunchImage设置
    25.iOS检测app进入后台或前台方法
    26.App跳转AppStore更新功能
    27.利用UISegmentedControl在同一个控制器切换不同的tableView
    28.模型中想修改后台返回的字段名字以及有嵌套数组的情况(MJ方式处理)
    29.分组数据的处理(数组嵌套数组)
    30.在window上添加视图时的注意事项

    1.后台返回数值类型,用字符串接收遇到的问题

    后台返回一个字段是数值型,前端用字符串进行如下方式接收,出现程序奔溃

    返回的ttnum为数值类型 接收解析数据的方式,奔溃 奔溃,打断点返回的类型为数值类型,接收是字符串

    备注:(上面问题的2种解决办法)
    1.把ttnum用[NSString stringWithFormat:@"%@"]转一下也不会奔溃了
    2.如果解析数据用模型方法去解析的话就不会出现这种问题,因为MJ的方法里会自动转化处理,解决这个问题

    这种方式写就不会奔溃

    2.iOS 从0到1搭建高可用App框架

    https://mp.weixin.qq.com/s/BYQCQxyoIpp1aC7e4l6-dg

    3.六天完成一个简单APP的全过程

    第一天:https://www.jianshu.com/p/006579dba0b2
    第二天:https://www.jianshu.com/p/5f6e92611023
    第三天:https://www.jianshu.com/p/35bf4a1119d0
    第四天:https://www.jianshu.com/p/e78125b91410
    第五天:https://www.jianshu.com/p/98a0c9fe3e6e
    第六天:https://www.jianshu.com/p/a47f683920f9

    4.iOS个人开发自己的APP

    http://www.jianshu.com/p/cf73ec9dcf2c

    5.block的问题

    问题:封装的导航栏中back按钮在封装的视图中通过block回调点击事件报错,会显示内存泄漏好像;但是在外部调用封装的视图的时候去添加按钮事件,不显示报错,运行正常
    解答:block会持有对象。你用block的时候它就持有了当前你用到的一些视图,会引起内存泄露。如果你直接把视图的子视图暴露出来就没有这个问题,但是代码的封装性什么的就不怎么样了。选择block,用weakself去弱引用解决内存泄漏

    6.clipsToBounds和masksToBounds的区别

    clipsToBounds:是类View的属性;是指视图上的子视图;如果设置为yes,则不显示超出父View的部分
    masksToBounds:是类CALayer的属性;是指视图的图层上的子图层;如果设置为yes,则不显示超出父View layer的部分

    7.在线转模型工具

    在线转模型

    8.json在线格式化

    使用他的主要是什么呢?一美观,其二看数据格式方面

    9.状态栏的使用总结

    https://www.jianshu.com/p/1dd3a2aec890

    10.让UITextFiled键盘收起的小方法

    利用代理的相关通知方法,然后进行可编辑与否的设定实现

    11.加减按钮 12.创建窗口视图时候的bug

    左右分别是加减按钮,中间是数字Lable,点击按钮实现数字加或者减

    代码

    12.创建窗口视图时候的bug

    使用懒加载的时候,第一次调用创建窗口视图时正常,第二次再次点击按钮创建就出现问题,如下图所示。正确的做法是不用懒加载,直接创建调用

    正常视图 bug视图

    懒加载代码(不用这种方式):

    懒加载代码 懒加载代码

    正确方式:

    正确方式代码

    13.APP更新

    14.iOS中几种定时器

    https://www.jianshu.com/p/21d351116587

    15.KVC/KVO/NSNotification区分

    https://www.jianshu.com/p/9728be39b306

    16.数字转String

    UITextField填写的数是字符串转成数字类型,然后提交参数的时候需要再转成字符串

    图片.png

    17.UITextField填写完以后回调

    问题:申请借款的时候,当输入的金额小于上面额度的时候就不展示下面的选择担保人,超过就展示。这是在输入完数字之后,通过UITextField填写完的通知,回调接口请求进行判断,这时候务必也要刷新表格才能改变它的cell数量或者高度,而刷新之后产生一个新的问题,之前输的那些数字又因为reload变回初识化状态。所以有个方法就是在刷新完之后再将UITextField的值赋一遍即可

    效果:

    图片.png 图片.png

    代码:

    图片.png

    18.两个字符串做运算

    图片.png 图片.png 图片.png

    19.cell/视图封装的BOOL判断控件布局

    问题:封装一个cell,在cell中想通过一个BOOL值的YES和NO来控制展示不同的控件,如YES时候,cell右边展示UILabel,NO展示UITextField 。这时候需要把控件的布局判断写在重写BOOL set方法里,不要写在初始化的地方(只要有重新布局的地方都要这样)

    正确:

    图片.png 图片.png 图片.png 图片.png

    错误:

    屏幕快照 2018-10-31 下午3.46.08.png 屏幕快照 2018-10-31 下午3.46.28.png 屏幕快照 2018-10-31 下午3.46.35.png

    20.加减按钮的实现

    屏幕快照 2018-10-26 上午11.31.15.png 图片.png

    21.左右tableView的cell标志符使用

    问题:一个控制器中同时有两个tableView,比如用这个分段控制器,点击分别切换不同表格。如果两个表格想用同一个封装的cell,复用时的cell标志符也要不一样,不然会有问题奔溃

    22. self.navigationController退出到指定页面,或者一次性pop出n个页面

    ios中 viewcontroller的跳转问题,其中有一种方式是采用navigationController pushViewController 的方法,可能会从主页面跳转到了一级页面,又从一级页面跳转到了二级页面,然后从二级页面跳转到了三级页面,依次类推。。等等

    • 1.如果一级一级的返回直接调用就行
    [self.navigationController popViewControllerAnimated:Yes];
    
    • 2.返回根页面用
    [self.navigationController popToRootViewController];
    
    • 3.返回指定的某级Nvc用下面2种方法均可(根页面即第0级,从0开始算 )
      方法一:
    // 第N级;即第N+1个控制器
    [self.navigationController popToViewController:
    [self.navigationController.viewControllers objectAtIndex:N] animated:YES];
    

    方法二:

    // [self.navigationController.viewControllers.count - 3]这个减的结果就是第N级,第N+1个控制器
    [self.navigationController popToViewController:self.navigationController.viewControllers[self.navigationController.viewControllers.count - 3] animated:YES];
    
    • 4.其他:
      4.1返回指定控制器
    //遍历控制器
    for (UIViewController *controller in self.navigationController.viewControllers) { 
    
       if ([controller isKindOfClass:[你要跳转到的Controller class]]) { 
    
           [self.navigationController popToViewController:controller animated:YES];
        } 
    }
    
    • 4.2一次性pop到上上一级
    int index = (int)[[self.navigationController viewControllers]indexOfObject:self]; 
    [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:(index -2)] animated:YES];
    

    23.App的AppIcon设置

    例子里面的29的1x就是29x29,2x就是58x58,3x就是87x87(单位是pt)。注意App上架的时候传的Logo图标是1024x1024。还有APP的这个图标是用直角的,不要用圆角(会出现黑边),苹果会自动切掉圆角

    WechatIMG1.jpeg WechatIMG1.jpeg

    24.App的启动页LaunchImage设置

    每个APP启动的时候,都会看到一张固定的预览图(这里指一般静态,不包含随时更新的动态效果),再进入首页。一般采用4套图片就可以了

    选择这4套尺寸可以 上面4套图相对应尺寸参数

    相关链接:https://www.jianshu.com/p/269b3f10af5d

    25.iOS检测app进入后台或前台方法

    相关链接:http://www.cocoachina.com/ios/20170908/20507.html

    App检测更新的方法可写在这个地方

    26.App跳转AppStore更新功能

    App弹框提示更新

    27.利用UISegmentedControl在同一个控制器切换不同的tableView

    相关链接:https://blog.csdn.net/qq_30070947/article/details/54139275

    28.模型中想修改后台返回的字段名字以及有嵌套数组的情况(MJ方式处理)

    1.有嵌套数组的情况:
    UToSpotsModel.h UToSpotsModel.m UToTimeModel.h UToTimeModel.m
    2.自定义名字的情况:
    UToPassenger.h UToPassenger.m

    29.分组数据的处理(数组嵌套数组)

    image.png image.png

    30.在window上添加视图时的注意事项

    相关文章

      网友评论

          本文标题:开发问题笔记(七)

          本文链接:https://www.haomeiwen.com/subject/bdagyqtx.html