• 常见问题(一)


    1.rn 验证失败

    在运行 react-native run-ios 时,会报如下错误,程序在模拟器上启动后,就崩溃了.上网查之后,有的说重启模拟器,有的说重新下载 demo 文件,结果都没成功.
    无赖之举,我重启了一下Mac, 结果尽然好了....比较一下异常,竟然是代理没有打开,没有翻墙成功的.一翻墙就会崩溃,可能是翻墙后有网络延迟,证书验证失败的原因.

    1 Installing build/Build/Products/Debug-iphonesimulator/AwesomeProject.app
    2 
    3 Launching org.reactjs.native.example.AwesomeProject
    4 
    5 org.reactjs.native.example.AwesomeProject: 1147

    2.tableview 无法滑动

    .(Bug) iOS 7 的 iPhone5c 下,scrollview 里面的 tableview 第一次可以滑动,若滑到其他位置后,再回到当前的 tableview,就不能向下滑动了.
    (解决) 不能滑动,无非是两个方案①查 contentsize ②查层次结构,是不是有 UIView 覆盖…或者当前 view 的滑动区域太小,有问题...
    (1) 在滑动 scrollview 时打印它和它的子 view 的 frame/ contentsize, 没发现什么问题.
    (2) 在以上滑动时,打印不能下滑的tableview的父视图的宽高,结果真的有异常,是大于屏幕尺寸320的.
    (3) 把屏幕尺寸改成正常后,就么有类似问题了.

    (结果) iOS7 对scrollview中超出距离的 view 可能做了某些裁剪处理,是 view 不能处理下滑事件.

    3.No such file or directory

    No such file or directory: '/Users/xxxxx/Desktop/xxxx/xxxxx/src/React-native/node_modules/react-native/React/CSSLayout/CSSLayout.c'
    (1) 这是 RN 的问题,感觉像是导入的文件不存在,删除了build phases下的compile sources 对应文件后,重新导入,依然有问题.
    (2) 感觉像是缓存的问题,使用 npm cache clear方法清除缓存后,也无法解决问题.
    (3) 第二天,重新审视这个文件,它说没有这个文件,我就去这个路径找不就得了吗...结果不存在这个路劲,而且路径中有一个 user name 不是我的.
    (4) 我在我的项目中搜索是否谁调用了这句话,结果还真有调用它的地方,改一下路径就可以了...

    4.造成block 循环引用的原因

    A.property-->B-->block-->A.property.(PS:只有 A 拥有了 B ,并且 B 拥有了block, 并且该 block 中引用了 A,才会造成循环引用)
    (<font color=blue>若 A 拥有了 B, B 的方法调用了 A, 则不会引起循环引用</font>)

    1  [_inputView addBarrageSettingHighActionBlock:^(BOOL isSelected) {
    2         [weakSelf bringSubviewToFront:weakSelf.inputView];
    3     }];

    5.no rule to Process file when build phases has this file?

    在build phases中搜索当前文件,移除掉就 ok 了.

    6.'couldn't find a common superview

    Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'couldn't find a common superview for <UILabel...往往是在使用Masonry自动布局时,没有给当前视图添加父视图.

    7. prototype table cells must have reuse identifiers.

    这种警告可以删除当前 storyboard 或 xib 中的cell, 就不会有警告了.dequeueReusableCellWithReuseIdentifier:forIndexPath:方法会查找storyboard 或 xib 中的cell, 若reuseid 一致,就会找 xib 中的 cell, 默认是 UITableViewCell, 就不是我们自己创建的 cell 了.

    8.DEBUG 工具栏警告

    以下警告往往发生于在UITableViewCell中添加子控件时,添加到了contentView中,而设置自动布局的约束时,是相对于UITableViewCell来添加的,也就是父视图的父视图.

    1 "<MASLayoutConstraint:0x6000000b9a40 UILabel:0x7f9c75e0ea80.top == PTVHotLiveListCell:0x7f9c76808000.top + 10>",
    2 "<MASLayoutConstraint:0x6000000b9ce0 UILabel:0x7f9c75e0ea80.top == UITableViewCellContentView:0x7f9c75d058f0.top + 10>",
    3 "<NSAutoresizingMaskLayoutConstraint:0x60800009f540 UITableViewCellContentView:0x7f9c75d058f0.(null) == 201.25>",
    4 "<NSAutoresizingMaskLayoutConstraint:0x60800009f9f0 UITableViewCellContentView:0x7f9c75d058f0.height == 251.5>",
    5 "<NSAutoresizingMaskLayoutConstraint:0x600000281180 PTVHotLiveListCell:0x7f9c76808000.(null) == 0>"

    9.优先级理解错误

    忽略运算符的优先级,出现如下问题:NSInteger index = indexPath.row - _dataMgr.carouselDataArray.count > 0 ? 1 : 0;

    10.tableview 的高度不能随 cell 的 height 自适应

    可以使用以下代码
     1 _tableView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 2 _tableView.autoresizesSubviews = YES; 

    11.HMSegmentedControl让文字自动居中

    更改segmentWidthStyle属性,让文字宽度固定.

    12.collectionview中的 cell 的内容被裁减

    对于 collectionview 中的 cell, 若设置了layout 的 itemsize,则超出这个itemsize的子视图都会被裁剪.....当 cell 中的子视图很多时,这点很容易遗忘.

    13.状态栏颜色

    对于顶部导航栏隐藏的情况,要想改变状态栏颜色可以通过改变 self.view 的颜色来改变.

    14.block 的两种写法

    1 typedef void(^ShowShadowView)(BOOL show);
    2 @property (nonatomic,copy) ShowShadowView showShadowView;
    1 @property (nonatomic,copy) void (^showShadowView) (BOOL show);

    15.一个控件显示正确,另一个控件显示不正确.

    可以先注释掉错误调用控件的类的属性,在每一个出红点的地方和正确调用的类进行比较.

    16.若设置 tableview 的背景颜色不生效,可以尝试设置背景视图.

    1     UIView *footerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 1, 1)];
    2     footerView.backgroundColor = [UIColor whiteColor];
    3     _tableView.backgroundView = footerView;

     17.无法设置 section 之间的距离

    当 tableview 在初始化时,被设置成了 UITableViewStyleGrouped 类型的,就无法通过heightForHeaderInSection代理方法设置 section 间距,必须把 tableview 的类型改为 UITableViewStylePlain.

    18.sh: /Applications/XCode.app/Contents/Developer/usr/bin/xcrun: No such file or directory(crash崩溃)

      <1> 在使用symbolicatecrash解析崩溃文件的时候,提示如题的 bug,或者Error: can't find tool named 'otool' in the macosx SDK or any fallback SDKs 这样的 bug, 很多人觉得是终端的问题,需要更新一下终端,可总是解决不了问题....

      <2> 于是换种思路,会不会是symbolicatecrash不是最新的呢?把symbolicatecrash更新以后,就没有任何警告了.

      (PS:Xcode7.3 symbolicatecrash路径
    /Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash)

    19.给导航栏设置阴影,iOS 10以下的系统死活设置不上

      <1> 解决bug, 最常用的就是注释代码,把复杂的逻辑改成最简单的逻辑,看看效果是否可以.结果设置成最简单的颜色后,还是不显示阴影....

      <2> 因为阴影也是一个视图,不可能无缘无故的不显示,问题就有可能出在阴影被隐藏了的问题上了.....

      <3> 结果还真是,在自定义的导航栏中的 viewdidload 方法中,执行了遍历 navbar 子视图并隐藏导航栏 imageview 的语句,导致我在 initialize 方法中设置的导航栏阴影都不生效.

    20.给底部导航栏设置阴影,却总是不透明

      主要还是由于 tableview 的高度设置小了,感觉像是 tabbar 多出来一部分,把文字给严实(不透明)地遮住了.

  • 相关阅读:
    FreeBSD使用多线程下载工具axel
    类UNIX系统基础:文件安全与权限
    基于pf防火墙控制IP连接数
    在FreeBSD下搭建高性能企业级网关与代理服务器
    搭建自己的CVSup服务器
    转:Spring技术内幕——深入解析Spring架构与设计原理(三)IOC实现原理
    Spring Web MVC的实现(二)
    java中HashSet详解
    转:Spring技术内幕——深入解析Spring架构与设计原理(二)IOC实现原理
    DIV垂直水平都居中
  • 原文地址:https://www.cnblogs.com/lz465350/p/6486144.html
Copyright © 2020-2023  润新知