知识点记录

  • Target->Build Phases->Link Binary With Libraries


    001.png

    Link Binary With Libraries列出了工程所需要链接的.framework动态库和.a静态库
    对于链接的系统动态库而言,由于ios的系统是在不断的升级中,必然会引入不少新功能和新API,而大多数都是会以.framework的方式提供给开发者
    如果开发者使用了这些新引入的.framework,那么因为app的用户的系统版本不是统一的,所以用户机器上不一定都存在该动态库,此时就应该把链接的这些新的.framework改成Optional的,然后在程序代码中去动态判断用户版本,来启动对应的新功能
    如果不修改成Optional而保持Required的话,在部分不存在该动态库用户的机器上,就会导致app一启动就退出,因为找不到对应的动态库

  • 在StoryBoard上使用UIScrollView
    先设置ScrollView的约束
知识点记录_第1张图片
002.png

往scrollview上添加一个视图 UIView,给View添加约束


知识点记录_第2张图片
003.png

上下滑动的设置Horizontally in Container 水平滑动的设置Vertically in Container


知识点记录_第3张图片
004.png

两张图上的约束都设置完了约束都显示黄色了再更新frame,不用着急!给scrollview和上面的试图配点颜色,最后效果
知识点记录_第4张图片
005.png

UIView的高度(水平滑动设置宽度)一定要设置,在IB界面上scrollview的contenSize是通过其上视图的尺寸决定的,要布局控件可以先在上面添加一个UIView,然后在View上添加视图。
  • 原子和非原子属性
    atomic:原子属性,为setter方法加锁,默认,消耗大量资源
    nonatomic:非原子属性,不会为setter方法加锁,多个线程同时调用会产生错误,所以不要在子线程访问setter方法
  • instancetype和id
    相同点:作为方法的返回类型
    不同点:
    1、instancetype 可以返回和方法所在类相同类型的对象,在编译期就可以确定返回类型,帮助编译器更好定位代码问题。id在编译期只能返回未知类型的对象,运行时才能确定真正返回的对象类型。
    2、instancetype只能作为返回值,id除了返回值还可以作为参数.

你可能感兴趣的:(知识点记录)