iOS基础问题面试题附带答案(二)

1.xcode5和xcode7区别?

xcode7没有Frameworks文件夹,xcode7内部会自动帮你导入一些常见的框架.
xcode7多了LaunchScreen.xib,LaunchScreen.xib设置启动界面,而且可以确定模拟器或者真机的真实尺寸,如果没有设置,默认4s的尺寸(320,480)
xcode7没有pch文件
xcode5当中也有info.plist,只不过它的名字很长.是工程的名称.

2.pch文件原理?

把pch里面的所有内容导入到每个文件中去

3.UIApplication常见功能?

1、设置应用提醒数字
2、设置连网状态
3、设置状态栏
4、跳转网页

4.程序完整启动流程?

1、执行Main
2、执行UIApplicationMain函数.
3、创建UIApplication对象,并设置UIApplicationMain对象的代理.UIApplication的第三个参数就是UIApplication的名称,如果指定为nil,它会默认为UIApplication.UIApplication的第四个参数为UIApplication的代理.
4、开启一个主运行循环.保证应用程序不退出.
5、加载info.plist.加载配置文件.判断一下info.plist文件当中有没有Main storyboard file base name,里面有没有指定storyboard文件,如果有就去加载info.plist文件,如果没有,那么应用程序加载完毕.

5.UIWindow是什么?

UIWindow是一种特殊的UIView,通常在一个app中至少有一个UIWindow
iOS程序启动完毕后,创建的第一个视图控件就是UIWindow,接着创建控制器的view,
最后将控制器的view添加到UIWindow上,于是控制器的view就显示在屏幕上了
一个iOS程序之所以能显示到屏幕上,完全是因为它有UIWindow

6.手动创建窗口的步骤?

1、创建窗口,要有窗口显示,必须要有强引用.窗口也是控件,要想展示出来.必须得要有尺寸.
2、创建控制器
3、设置控制器为窗口的根控制器
4、显示窗口

7.makeKeyAndVisible做了哪些事情?

让窗口成为显示状态.
把根控制器的View添加到窗口上面.
把当前窗口设置成应用程序的主窗口

8.如何从从StoryBoard加载控制器?

加载指定的storyBoard
加载箭头所指向的控制器.
加载指定标识的控制器.

9.initWithNibName的加载过程?

如果没有指定名称.指定为nil,那么它就会去先加载跟它相同名称的Xib.
如果没有跟它相同名称的Xib,那么它就会再去加载跟它相同名称去点Controller的名字的Xib.
控制器的init方法会调用initWithNibName:方法.

10.LoadView 作用以及使用LoadView的注意点?

控制器调用loadView方法创建控制器的view.它的默认做法是:
先去判断当前控制器是不是从StoryBoard当中加载的,如果是,那么它就会从StoryBoard当中加载控制器的View.
如果不是从StoryBoard当中加载的, 那么它还会判断是不是从Xib当中创建的控制器.如果是,那么它就会从xib加载控制器的View.
如果也不是从Xib加载的控制器.那么它就会创建一个空的UIView.设为当前控制器的View.
注意点:
一旦重写了loadView,表示需要自己创建控制器的View.
如果控制器的View还没有赋值,就不能调用控制器View的get方法.会造成死循环.
因为控制器View的get方法底层会调用loadView方法.

11.UIPickView是什么控件,基本用法怎样的?

UIPickView选择控件,用来供用户选择一些城市等.它的基本用法与tableView基本相似,要设置数据源,代理, 让其展示数据

12.KVC底层实现?

拿字符串与当前类的属性进行匹配.如果匹配到,就给该属性赋值. [flagItem setValue:obj forKeyPath:key];
1、会找有没有跟key值相同名称的set方法,如果有,就会调用set方法,把obj传入
2、如果说没有set方法.那么它会去找没有相同名称,并且带有下划线的成员属性,如果有就会给该属性赋值.
3、如果也没有带有下划线的成员属性,就看有没有跟它相同名称的成员属性,如果有就会给该属性赋值.
4、如果还没有跟它相同名称的成员属性,就会调用setValue:(id)value
forUndefinedKey:
5、如果没有实现setValue: forUndefinedKey: 就直接报错

13.导航控制器View的结构是怎样的?

一个专门存放栈顶控制器View的View
一个导航条,导航条的高度为44,Y值为20

14.导航push做了哪些事情?

当调用push方法时, 会把要push的控制器添加到导航控制器管理的栈中,把之前导航控制器中栈顶控制器View给移除,把当前栈顶控制器添加上去.

15.导航pop做了哪些事情?

当调用pop方法时, 会把要pop的控制器从栈里移除,把之前导航控制器中栈顶控制器View给移除,把当前栈顶控制器添加上去.

16.如何设置导航条的内容?

导航条的内容由导航控制器的栈顶控制器的NavigationItem决定.

17.导航控制器pop操作有哪些?

返回上一级
返回到根控制器
返回到指定的控制器.

18.文本框如何拦截用户输入?

给指定的文件框,设置代理 ,实现代理方法.里面包括是否允许开始编辑,是否允许结束编辑,是否允许改变字符等等.

19.如何自定义键盘?

自定义键盘,要继承系统的UITextField,设置文本框的一个属性,该属性名称为inputView.这样就可以把键盘定义成自己要想的View.

20.导航控制器的作用?

导航控制器可以轻松的完成控制器之间的切换.其操作有push,pop等.

21.自动跳转与手动型跳转区别?

自动跳转:通过控件直接拖线的方式进行跳转
手动跳转:在跳转之前要去做一些处理工作. 必须得要执行performSegueWithIdentifier:才能跳转.

22.什么时候使用代理 ,代理的步骤?

当一个对象发生某一件事时,想要把自己的东西传给别人.或是通知别人做某事使用代理.
使用场景: 上下级之间,通常是它的上一级成为它的代理.
步骤:
1、定义协议
2、定义代理属性
3、在.m文件当中调用代理方法
4、设置代理
5、遵守协议
6、实现协议方法

23.ios当中存储方式有哪些?

1、XML属性列表(plist)
2、Preference(偏好设置)
3、NSKeyedArchiver,只有遵守NSCoding协议的对象才可以使用这种方式。
4、SQLite
5、Core Data

24.tableView性能优化

1、tableView的缓存机制.
2、在不等高Cell当中,提前计算Cell的行高.提前估一个行高.200-250
3、如果说Cell当中有圆形图片,图片不要用ImageView加载layer.corneadius裁剪去做.会造成离屏渲染. 用绘图Qurarzds裁剪,生成一张圆形的图片.
4、如果说图片的宽高,指定为小数点.会造成锯齿,造成锯齿就会导致离屏渲染
5、cell当中的ImageView的大小最好是跟UIImage是一样大,如果不一样大 它会对UIImage做形变操作.cell当中展示都是小图.小图的大小跟ImageView 点击放大,是再去用大的ImageView加载大图.
6、做tableView的时候一定要用真机.
7、如果是从网络加载数据,一定要放到子线程(异步加载)当中做.
8、加载完毕的数据一定做本地缓存.
9、cell当中不要动态的添加子控件.一般都在创建时,就把要出现的Cell给添加进去,暂时不要显示的,可隐藏.
10、尽量减少Cell内部子控件的个数.
11、如果控件非常多,把不需要与用户进行交互的控件.能过异步绘制出来.生成一张图片.把图片添加到cell当中

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

推荐阅读更多精彩内容