坑们

1.当一个控件要加到父容器的时候调用willMoveToSuperview

willMoveToSuperview和 layoutSubview的区别
1)当将这个控件真正添加到父控件的时候会调用这个方法设置当前控件的所有子控件frame.—layoutsubview
2)当当前控件添加到父控件时调用这个方法 ---willMoveToSuperview

2.scrollView 的contenOffset和contentInser的区别

contenOffset设置内容的默认间距
contentInser是滚动之后的内容的间距

3.默认情况下,不能直接对通过读取plist的数组进行修改

因为它默认是NSArray类型,不能删除或修该

4.NSTimer

timerWithTimeIntervalxxx,并不会自动添加到运行环中,意味着它的时钟不会自动开启
scheduledTimerWithIntervalxxx;它会以默认的方式添加到线程运行环中自动运行,有一个缺点.当有其他操作执行的时候,它会暂时停掉,直到其他的方法执行完毕才恢复
定时器会强引用target直至定时器被销毁,所以控制器不会销毁,导致内存泄露
需要自定义的类,使定时器对自定义的类进行强引用,自定义的类对控制器进行弱引用,才不会造成内存泄露

5.UITableView的行高确定

ios9以后:方法的流程—先调用设置行高的方法—调用创建cell的方法—再调用设置行高的方法(有预估值的话就不会先调用第一步)
ios9以前:没有第三步.

6.自动布局

autolayout— 能根据任意控件之间的关系来设置位置
autoresizing—只能根据父容器来设置frame值
size classes + autolayout 可以为不同尺寸的屏幕 通过autolayout设置不同的约束
autoresizing和autolayout二者是互斥的,只能使用其中一种

7.状态栏

在iOS7之后,状态栏样式默认交给控制器管理,之前是由UIApplication管理的,如需改回来,交回给application管理,则在info文件设置

8.toolbar中的UIBarButtonItem:

- (instancetype)initWithTitle:(nullable NSString *)title style:(UIBarButtonItemStyle)style target:(nullable id)target action:(nullable SEL)action;

style 的三种样式,没差别,因为ios7以后扁平化了

9.UIPickView

设值cell里面内容字符串的属性,该方法的优先级比单纯返回字符串的高

10.在OC中,方法内部会对方法调用者进行一次强引用

11.手势冲突:

[panGestureRecognizer requireGestrureRecognizerToFail:leftSwipe]

处理方法:
一个控件可以添加多个手势,一个手势只能作用在一个控件上
手势优先级的原因,从staus属性可以查看手势识别的优先级

11.核心动画的缺点:

1).核心动画是一个假象
2).不能回到原来的位置

12.不能在遍历数组的同时,删除数组中的元素..会崩溃—解决方法,在循环外删除

13.如何选择加载图片的方法

  1. 图片使用频繁而且比较小的图片,使用imageNamed
  2. 图片使用不频繁而且比较大的图片,使用imageWithContentsOfFile:

14.线程的销毁

正常的死亡用return,强制的退出用[NSThread exit] (在该方法使用前,记得要先释放资源,同时不能在主线程中执行该代码)

15.线程的安全自旋锁和互斥锁的相同点和区别

苹果官方建议使用非原子性,不建议多个线程同时访问同一个属性,大部分UI控件都不是线程安全的,苹果约定:所有跟UI相关的操作必须在主线程上执行,为了性能和效率.
相同点:都能保证锁住的代码同一时间只有一个线程执行
不同点:

  1. 互斥锁:如果锁住的代码有其他的线程在执行,等待的线程会进入休眠的状态,一旦锁被解开,则等待的线程会马上唤醒
  2. 自旋锁:如果锁住的代码有其他的线程在执行,等待的线程会以死循环的方式等待锁,一旦锁被解开,则马上执行锁住的代码

16.+(void)initialize 和 +(void)load方法的使用

  • 当类加载的时候调用,只要是使用#import导入类,就会调用类的方法+(void)load
  • 当第一次使用到该类或该类的子类时调用,如果子类没有重写该方法,父类的该方法会被调用多次 +(void)initialize

17.view的edge

在iOS 7中,苹果引入了一个新的属性,叫做[UIViewController setEdgesForExtendedLayout:],它的默认值为UIRectEdgeAll。当你的容器是navigation controller时,默认的布局将从navigation bar的顶部开始。这就是为什么所有的UI元素都往上漂移了44pt。

18.位移枚举

当要传一个位移枚举的时候,如果不关心类型的话,直接传值0,效率会更高,因为判断内部前面应该会先有一个对0 的判断,如果为0,直接返回,不进行下面的判断

19.清空字符串

清空字符串,不能直接赋值nil,因为可变字符串是懒加载,如果赋值为nil,会导致循环创建(字符串为可变字符串)

20.后台返回的数据

如果后台数据的名称是id,我们可以照样使用id,不用担心跟关键字重复,不能返回nil

21.命名

在iOS7之后,属性命名不能用new,copy,retain等单词开头,可以将首字母改为大写

22.控制器的父子关系

如果控制器的view互为父子关系,则控制器之间也必须互为父子关系,否则响应者链条会传递不了

21.collectionView

  • collectionview的组数为0的时候就崩了,当collectionview的组数由模型决定,同时模型又是通过网络请求数据,异步子线程加载数据的时候.暂时的解决方法

22.

当用navigationcontroller push一个控制器入栈的时候,如果这个控制器的view没有背景颜色的时候,则切换控制器的时候就出现画面卡顿的现象:解决方法
给控制器的view设置背景颜色

23.用KVC对只读属性赋值

当针对某个类的属性的时候,该属性是只读,只能使用kvc赋值,暴力破解,调用的过程,
1)先找setTabBar()方法,能找到就直接调用这个方法,如果找不到
2)再找_tabBar成员变量
3)再_setTabBar()方法
4)再找tabBar的成员变量

24.文件命名

  • 在项目文件中,不能以中文来命名,会报错,找不到文件,出现文件丢失
  • 项目名称中产品名称出现中文,创建一个自定义数组,添加对象,会报错.打断点po得p的值为p,创建数组失败,解决方法:更改产品名称为中文名,

25.SDWebImaged的下载图片

从缓存中获取的图片图片是点坐标,点坐标 = 像素 / 2 (SDWebImage在3.7.3之后才会这样帮你处理),所以要恢复原来图片的大小,乘以当前屏幕的缩放系数

26.避免动画的重复添加——要设置key值,系统会自动识别

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,108评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,654评论 18 139
  • 《裕语言》速成开发手册3.0 官方用户交流:iApp开发交流(1) 239547050iApp开发交流(2) 10...
    叶染柒丶阅读 26,735评论 5 19
  • 王正友是一名屠夫,在这饲料猪横行的时代,他的乡猪摊生意异常火爆,这使得他跟他的伙计小梁几乎每天都要到农村去走村串寨...
    邻家阿呆阅读 354评论 2 5
  • 『你们不是搞上门O2O的么,怎么还没倒闭啊?』 这是一个心直口快的朋友前两天问我的,我觉得特别有代表性。 前段时间...
    王润阅读 525评论 2 10