面试题目

1:Coredata讲解

Coredata是一个良好的对象图管理工具,那么对象图也就是实体⚠️实体包括两个部分,属性和实体之间的关系.

属性分为很多种

1:Optional 可选/必须 

Transient 瞬态

Indexed索引

Validation 验证

2:AFN ,URLSession,相互关系

NSURLSession类支持三种类型的任务:加载数据,下载和上传。--AFHTTPSessionManager(封装了常用的 HTTP 方法)

1:NSURLSession的创建需要指定模式,代理,和代理的线程队列

2:NSURLSession的提供了丰富的构建task的方法,使用block的话就不会回调代理了

3:NSURLSessionTask提供了开启,中断,取消的操作,状态,发送接收数据的属性,request,response,error属性,没有data属性

使用代理的话,需要把data叠加

AFN

1:包含了对NSURLRequest的封装,NURLResponse的处理,以及连接的创建、管理,https安全性的配置,网络的监测,UIKit的扩展

2:基于NSURLSession的轻量级,用于发送异步请求(get,post,文件上传,下载)的框架

3:AFN3.X版本仅仅基于NSURLSession,AFN2.X主流用法还是继续NSURLConnection。3.X比2.X结构更加简单清晰

3:CADisplayLink CoreGraphics

CADisplayLink是以屏幕刷新频率将内容绘制到屏幕上的定时器。使用的时候,先创建一个CADisplayLink对象,将其添加到一个RunLoop中,并设置target和selector方法,则每次屏幕刷新的时候,selector方法就会自动调用。使用CADisplayLink需要引入QuartzCore框架。与NSTimer的不同--CADisplayLink在正常情况下会在iOS的屏幕刷新结束后调用,精确度比较高。

CoreGraphics也称为Quartz 2D 是UIKit下的主要绘图系统,频繁的用于绘制自定义视图。Core Graphics是高度集成于UIView和其他UIKit部分的。Core Graphics数据结构和函数可以通过前缀CG来识别。

4:死锁的原因和解决方案

在使用GCD的时候,我们会把需要处理的任务放到Block中,然后将任务追加到相应的队列里面,这个队列,叫做Dispatch Queue。然而,存在于两种Dispatch Queue,一种是要等待上一个执行完,再执行下一个的Serial Dispatch Queue,这叫做串行队列;另一种,则是不需要上一个执行完,就能执行下一个的Concurrent Dispatch Queue,叫做并行队列。这两种,均遵循FIFO原则。

http://blog.csdn.net/mr_lucien/article/details/51153473

5 :NSAutoReleasePool使用中drain和release的区别

[pool drain] 和 [pool release] 的区别:

release,在引用计数环境下,由于NSAutoReleasePool是一个不可以被retain的类型,所以release会直接dealloc pool对象。当pool被dealloc的时候,pool向所有在pool中的对象发出一个release的消息,如果一个对象在这个pool中autorelease了多次,pool对这个对象的每一次autorelease都会release。在GC环境下release是一个no-op操作(代表没有操作,是一个占据进行很少的空间但是指出没有操作的计算机指令)。

drain,在引用计数环境下,它的行为和release是一样的。在GC的环境下,这个方法调用objc_collect_if_needed出发GC。

因此,重点是:在GC环境下,release是一个no-op,所以除非你不希望在GC环境下出发GC,你都应该使用drain而不是使用release来释放pool。

6:nsobject 和《nsobject》区别

NSObject*就是 NSObject类型的指针了,它范围较小。

id《nsobject》是指针,它要求它指向的类型要实现NSObject protocol,

iOS中很多类定义很奇葩,类名叫NSObject,定义个接口也叫NSObject,但是它俩不是一个东东而NSObject类实现了NSOject接口,所以id可以指向NSObject的对象。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.什么是arc?(arc是为了解决什么问题诞生的?) 首先解释ARC: automatic reference ...
    LuckTime阅读 3,025评论 0 0
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,393评论 30 472
  • 一、笔试常用基础问题 1.#import 和 #include 的区别 @class? @class一般用于头文件...
    郑莫轩阅读 5,198评论 0 11
  • 1.如何理解interface 和 property?答:a. 只在@interface中定义变量的话,你所定义的...
    my__life阅读 1,499评论 0 0
  • Objective-C是一门动态的语言 ① 什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可...
    小李龍彪阅读 2,910评论 0 0

友情链接更多精彩内容