0 问题:

1解释self = [super init]方法

其实就是容错处理,当父类初始化失败,会返回一个nil,表示初始化失败。由于继承的关系,子类是需要拥有父类的实例和行为,必须先初始化父类,再初始化子类

2线上App崩溃

方法一,在源生代码中修改,提交

方法二,利用第三方平台,JSPatch  使用JS调用oc源生接口,替换任意OC方法,我的认识就是可以不通过重新上架app项目到appStore就可以修改oc代码

3App中混合H5开发,优缺点:

方法一:使用UIWebView或者WKWebView(ios8以后)

通过UIWebView代理方法拦截,判断scheme是否是约定好的,调用本地API是哪

shouldStartLoadWithRequest

方法二:ios7以后,直接通过JavaScriptCore库,通过往JS DOM注入对象(某个类的实例)

优缺点:加入h5,比原生要慢很多,体验不好;可以实现嵌入别的功能入口,可以随时更改,不用更新版本就可以上线

4static

函数体内,作用范围是该函数体,该变量的内存只被分配一次,下次调用时仍然维持上次的值;模块内是全局变量,可以被模块内的所有函数访问,外部不行

5地图和定位:

定位,创建位置管理器请求用户授权;请求目的地和当前位置的针线;创建渲染物对象在mapView代理方法中根据折现创建渲染物,并设置颜色

6常见的Http状态码:302请求重定向;304网页自请求者上次请求后没有更新,可以节省带宽

500以上是服务器错 ;400以上是请求链接错误或者找不到服务器;200以上是用户成功获取到了请求的文件,正确;100以上是请求接受成功‘

7isa指针指向什么

每一个对象内部都有isa指针,这个指针指向它真正的真是类型,根据这个指针就能知道将来调用哪个类的方法

8触摸事件的传递:

触摸事件的传递是从父控件传递到子控件,如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件,不能接收触摸事件的四种情况:不接收用户交互userInteractionEnabled = NO;隐藏hidden = YES;透明alpha <= 0.01;未启用enabled = NO;

9事件响应者链

如果当前view是控制器的view,那么就传递给控制器,如果控制其不在,则将其传递给它的父控件,在视图层次结构最顶层视图也不能处理接收到的事件或消息,将事件或消息传递给UIWindow对象进行处理;如果UIWindow对象也不能处理,将事件或消息传递给UIApplication对象,如果UIApplication也不能处理对象或消息,则将丢弃掉

10UITableView的复用机制

每次创建cell的时候,通过dequeueReusableCellWithIdentifier:方法创建cell,先到缓存池中找指定标识的cell,如果没有直接返回nil,如果没有找到标识的cell,会通过initWithStyle:reuseIdenitifier:创建一个cell,当cell离开界面的时候,会被放到缓存池中,供下次使用

11沙盒目录

Application:存放程序源文件,上架前经过数字签名,上架后不可以更改

Documents:常用目录,iClound备份目录,存数据

Library:

Caches:存放体积大又不需要备份的数据

Preference:设置目录,iCloud会备份设置信息

tmp:存放临时文件,不会被备份,这个文件下的数据有随时被清除的可能

12pushViewController和presentViewController有什么区别

两个都是在多个视图控制器里跳转的函数

presentViewController提供是一个模态视图控制器(modal)

pushViewController提供一个栈控制器数组,push/pop

13UIView和CALayer是什么关系

UIView显示在屏幕上归功于CALayer,通过调用drawRect方法渲染自身的内容,调节CALayer属性可以调整UIView的外观,UIView继承UIResponder,比起CALayer可以影响用户事件,ios6之后,可以方便的通过视图调试功能查看图层之间的关系

UIView是ios系统界面中元素的基础,所有的界面元素都继承它,内部是由Core Animation 来实现,它的真正的绘图部分,是由一个叫做CALayer(core Animation Layer)的类管理。UIView本身,访问有关绘图和坐标有关的属性,frame/bounds,实际上内部都是访问CALayer的相关属性

14

浅拷贝和深拷贝的区别:

浅Copy:可以理解为指针的复制,只是多了一个指向这块内存的指针,共用一块内存。

深Copy:理解为内存的复制,两块内存是完全不同的,也就是两个对象指针分别指向不同的内存,互不干涉。

15drawRect方法:

只有在此方法中,系统才能获取到上下文环境  ; rect参数是绘图上下文的大小;drawRect方法在view显示的时候调用一次

重绘:【self setNeedsDisplay];   系统会帮助调用drawRect方法,清除掉原来的,再绘制新的

[self setNeedsDisplayInRect:CGRect]; 固定区域的重绘

不能手动调用,否则获取不到

16app崩溃 收集问题

使用腾讯的bugly  输入程序id 关联进去,然后程序员查看崩溃日志

17动画:分为显示动画和隐式动画

在UIView上的事显示动画,不用我们手动去开启,只要直接调用animation的接口就可以了。

在CALayer上的动画叫隐式动画,需要我们去手动开启,隐式动画分为三种,属性动画,组动画和转场动画,属性动画又分为基础动画和帧动画,帧动画需要指定路径

隐式动画有隐式代理:动画的开始和动画的结束

18字符串使用copy

如果不使用copy,

@property(nonatomic,strong)NSString *str;

NSMutableString *string = [NSMutableString string];

[string appendString:@"hello"];

self.str = string;

NSLog(@"%@",self.str);

[string appendString:@"world"];

NSLog(@"%@",self.str);

}

NSString中copy的问题[3807:239891] hello

NSString中copy的问题[3807:239891] helloWorld

我们只给self.str附了一次值,但是self.str 的值改变了,这是因为把可变字符的地址指向了str,所以string的值改变了,self.str也跟着改变,

改为copy后,保证了在代码中数据的安全。  不可变不会有这种问题

19因为+load是在类被初始化时候就被调用的。+initialize是在收到消息之后才调用,如果应用不发送消息给它,它就永远不可能执行

20这个写法会出什么问题:@property (copy) NSMutableArray *array;

NSMutableArray用copy修饰有时就会crash,因为对这个数组进行了增删改操作,而copy后的数组变成了不可变的NSArray,没有响应的增删改方法,所以对其进行增删改操作就会报错

21 简述你对UIView、UIWindow和CALayer的理解

UIWindow对象是所有UIView的根,管理和协调的应用程序的显示。UIWindow类是UIView的子类,可以看作是特殊的UIView。一般应用程序只有一个UIWindow对象,即使多个UIWindow对象,也只有一个UIWindow可以接受到用户的触屏事件。

UIView是用来显示内容的,可以处理用户事件。

CALayer是用来绘制内容的,对内容进行动画处理依赖与UIView来进行显示,不能处理用户事件。

UIView和CALayer是相互依赖的关系。UIView依赖与calayer提供的内容,CALayer依赖uivew提供的容器来显示绘制的内容。归根到底CALayer是这一切的基础,如果没有CALayer,UIView自身也不会存在,UIView是一个特殊的CALayer实现,添加了响应事件的能力。UIView来自CALayer,高于CALayer,是CALayer高层实现与封装。UIView的所有特性来源于CALayer支持。

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

推荐阅读更多精彩内容

  • 1、截取字符串”20 | http://www.baidu.com”中,”|”字符前面和后面的数据,分别输出它们 ...
    强子ly阅读 2,934评论 8 46
  • 1.OC里用到集合类是什么? 基本类型为:NSArray,NSSet以及NSDictionary 可变类型为:NS...
    轻皱眉头浅忧思阅读 1,368评论 0 3
  • 1.自定义控件 a.继承某个控件 b.重写initWithFrame方法可以设置一些它的属性 c.在layouts...
    圍繞的城阅读 3,371评论 2 4
  • 7、不使用IB是,下面这样做有什么问题? 6、请说说Layer和View的关系,以及你是如何使用它们的。 1.首先...
    AlanGe阅读 664评论 0 1
  • 德国著名足球网站转会市场更新了最新一期的中超球队概况,一起来看看各球队的情况如何吧。 先看看球队总身价吧。广州恒大...
    奋斗星人_小帆阅读 602评论 0 0