美文网首页
2018-03-02 总结

2018-03-02 总结

作者: 后来作息时间了 | 来源:发表于2018-03-03 18:07 被阅读0次

    1.传值的方法?

    答: ①属性传值。通常用于正向传值,使用于A和B相互具有一定的关联性。不能用于隔页传值,需要传值的属性不能是私有属性,也就是说在.h中声明出来的属性才可以传值。

         ②Block传值。常用于回调,例如B有一个按钮,当按钮被点击时把点击事件传传给A,并传一个字符串"B被点了"。

        ③代理传值。代理传值和block传值相似,都是将事件分发出去。但是与block的不同在于,代理具有松耦合性,谁想处理事件成为该代理即可。代理传值属于一对一传值。

       ④通知中心传值。通知传值属于一对多,在实际开发中,常见用到的通知地方就是更换主题。在某个控制器发生事件,其他已存在的控制器作出响应。这里注意一点,是已存在

      ⑤单例传值。iOS系统中常间的单例模式莫过于UIApplication、 NSNotificationCenter、 NSUserDefaults。

    ⑥全局变量传值。在某个文件的.m文件创建一个全局变量,其他文件只要引用该变量,即可对该变量值进行修改和使用。需要注意,变量名要保证全局唯一。

    ⑦数据库传值、NSFileManager

    2.侧边栏的实现?

    答:使用MMDrawerController框架或者RESideMenu框架。

    3.搜索栏实现?

    答:使用系统UISearchBar 或者自定义搜索框。

    4.Block的运用?

    答:block在其他语言里又称闭包,可以叫匿名函数,代码块。一句话概括就是 带有变量的匿名函数。

    block的两大常见用法分别是 反向传值、回调,和封装一些网络请求类,通过block作为方法的参数,比如UIview带block的那个动画。

    5.数据存储的方式有哪些?

    答:

    数据:sqlite 操作方式分为原生 sqlite3、FMDB、coredata

    归档:Archive 自定义类型需要注意遵循NSCoding协议

    plist:就是数组或字典,写入文件后的表现形式

    NSUserDefault:本质上就是plist

    6.简单说说ARC?

    答:Automatic Reference Counting,自动引用计数,即ARC。arc是由Xcode自动在app编译阶段在代码中添加内存管理代码。如果需要持有一个对象,那么对其发送retain 如果之后不再使用该对象,那么需要对其发送release(或者autorealse) 每一次对retain,alloc或者new的调用,需要对应一次release或autorealse调用。

    7.一个lable添加在view上,但运行显示不了是什么问题?

    答:考虑问题如下

    1.没有设置尺寸

    2.控件的颜色可能跟父控件的背景色一样(实际上已经显示了)

    3.透明度alpha <=0.01 看不见

    4.hidden = YES;

    5.位置不对

    6.设置时没有放到主线程

    8.什么是委托?

    委托(delegate),就是某个对象指定另一个对象处理某些特定任务的设计模式。通俗来说,就是“某个对象”把要做的事情委托给“另一个对象”去做。

    委托模式:代理+协议 的组合,实现一对一的反向传值操作。

    1.委托需要做的工作有:

         1.1定义协议与方法

         1.2声明委托变量

         1.3设置代理

         1.4通过委托变量调用委托方法

    2.代理需要做的工作有:

    2.1遵循协议 

         2.2实现委托方法

    9.说说delegate和block的优缺点?

    答:

    block 更轻型,使用更简单。使用block实现委托模式,其优点是回调的block代码块定义在委托对象函数内部,使代码更为紧凑,适配对象不再需要实现具体某个protocol,代码更为简洁。但block会常造成循环引用,这点需要注意。

    delegate 需要实现接口,它的方法分离开来,很多时候需要存储一些临时数据,另外相关的代码会被分离到各处,没有 block 好读。但通常被weak引用,不会造成内存泄漏。

    10.造成tableView卡顿的原因是什么?

    答:cell重用。

    TableView的重用机制,为了做到显示和数据分离,IOS tableView的实现并且不是为每个数据项创建一个tableCell。而是只创建屏幕可显示最大个数的cell,然后重复使用这些cell,对cell做单独的显示配置,来达到既不影响显示效果,又能充分节约内容的目的。下面简要分析一下它的实现原理。

    11.weak和strong的区别?

    答:

    强引用Strong:strong修饰的属性一般不会自动释放; 在OC中,对象默认是强指针,在实际开放中一般属性对象一般用strong来修饰(NSArray,NSDictionary),在使用懒加载定义控件的时候,一般也用strong。

    弱引用Weak: weak型的指针变量仍然可以指向一个对象,但不属于对象的拥有者。

    谁持有,谁strong;谁借用,谁weak!

    12.iPhoneX的适配问题?

    相关文章

      网友评论

          本文标题:2018-03-02 总结

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