每天题

1.沙盒 2017-8-2

2.cocopods原理 2017-8-3

3.APP生命周期 2017-8-3

4.控制器生命周期 2017-8-4

loadView:加载view
ViewDidLoad:view加载完毕
ViewWillAppear:view将要显示
ViewWillLayoutSubViews:view将要布局子控件
ViewDidLayoutSubViews:view布局子控件完成
ViewDidAppear:view完全显示
ViewWillDisAppear:view即将消失
ViewDidDisAppear:view完全消失 

5.iOS开发中Debug和Release的区别和使用 2017-8-5

6.@synthesize 和 @dynamic 分别有什么作用 2017-8-5

7.这个写法会出什么问题: @property (copy) NSMutableArray *array;2017-8-7

8.用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?2017-8-7

分别用这两个属性声明name,展示不同结果

@property(nonatomic, copy)NSString *name;
    NSMutableString *str = [NSMutableString stringWithString:@"xiaoming"];
    
    Student *stu = [[Student alloc] init];
    stu.name = str;
    NSLog(@"%@", stu.name);
    [str appendString:@"123"];
    NSLog(@"%@", stu.name);
结果 :
2017-08-07 10:49:52.503 APP生命周期哦[20667:11193446] xiaoming
2017-08-07 10:49:52.503 APP生命周期哦[20667:11193446] xiaoming

@property(nonatomic, strong)NSString *name;
执行同样代码结果:
2017-08-07 10:49:52.503 APP生命周期哦[20667:11193446] xiaoming
2017-08-07 10:49:52.503 APP生命周期哦[20667:11193446] xiaoming123
总结:
1.因为父类指针可以指向子类对象,使用 copy 的目的是为了让本对象的属性不受外界影响,使用 copy 无论给我传入是一个可变对象还是不可对象,我本身持有的就是一个不可变的副本.

2.如果我们使用是 strong ,那么这个属性就有可能指向一个可变对象,如果这个可变对象在外部被修改了,那么会影响该属性.

***没有人生来便懂得一切,你不需要自卑,你只需要更努力。
***每个人都要走一条自己坚定了的路,就算是粉身碎骨。
***如果再也不能见到你,祝你早安,午安,晚安。

9.分类的作用?分类和继承的区别?2017-8-8

分类可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改,并且如果分类和原来类中的方法产生名称冲突,则分类将覆盖原来的方法,因为分类具有更高的优先级。

继承可以增加,修改或者删除方法,并且可以增加属性;但是分类只能添加方法,不能删除修改,也不能增加属性。

10.推送的原理 2017-8-9

http://www.jb51.net/article/84082.htm
http://www.jianshu.com/p/9ac37c964f2d

11.子视图超出父视图不响应解决办法 2017-8-9

http://blog.163.com/micky_and_pupu/blog/static/239485040201551134349826/

12.深入理解RunLoop 2017-8-10

https://blog.ibireme.com/2015/05/18/runloop/

13.堆和栈的区别 2017-8-10

14.iOS 关键字const/static/extern 2017-8-11

http://www.jianshu.com/p/7a6885918b67

15.响应者链条 2017-8-14

http://www.jianshu.com/p/fe1d766bc406
http://www.cocoachina.com/ios/20160113/14896.html

16.谈谈id和instancetype的异同?2017-8-15

17.静态库和动态库的区别 2017-8-15

http://www.cnblogs.com/bboymars/p/4980754.html

18.TCP 和 UDP 的区别 2017-8-16

19. 断点续传的实现 2017-8-18

20.Swift重载和重写。2017-8-19

http://www.jianshu.com/p/5c133b123c74

21.Swift桥接OC文件 2017-8-19

22.OC中有多继承么。2017-8-21

没有多继承,用<>来替代

23.取消自动缩进 2017-8-21

//取消自动缩进 - 如果隐藏了导航栏会缩进 20 个点
automaticallyAdjustsScrollViewInsets = false
tabView?.contentInset = UIEdgeInsetsMake(nav.bounds.height,
                                                 0,
                                                 tabBarController?.tabBar.bounds.height ?? 49,
                                                 0)

24.使用纯代码写Autolayout,需先取消Autoresizing

    for v in subviews {
        v.translatesAutoresizingMaskIntoConstraints = false
    }

25.swift计算型属性和懒加载的区别

使用方法完全一致
都是用 var 声明
不同点
实现原理不同
懒加载是第一次调用属性时执行闭包进行赋值
计算型属性是重写 get 方法
调用 {}的次数不同
懒加载的闭包只在属性第一次调用时执行
计算型属性每次调用都要进入 {} 中,return 新的值

你可能感兴趣的:(每天题)