面试iOS Developer

每天10道面试题2016.6.28

2016-06-28  本文已影响252人  三秒嗨

1、什么是懒汉模式

网上找是单例。
单例模式是对象的创建模式之一,此外还包括工厂模式。
单例模式的三个特点:
1,该类只有一个实例
2,该类自行创建该实例(在该类内部创建自身的实例对象)
3,向整个系统公开这个实例接口

2、C语言中有哪些数据类型,这些数据类型能直接存放到字典或数组中吗?如果不能怎么处理?例如int型数据。

基本数据类型是不能存放进数组里面和字典 ,
需转换成对象才能存放.
可以转成模型然后归档成二进制数据流存进数组
也可以转成NSNumber、NSValue类型
NSNumber继承于NSValue
NSNumber主要针对于基本数据类型的包装,NSValue主要针对结构体进行包装

3、frame 和 bounds 有什么不同?

Frame是以父视图坐标系为基点
Bounds是以自己为坐标系

4、在一个对象的方法里面: self.name = @“object”; 和 name =”object”; 有什么不同吗?

self.name = @“object”;是调用方法 会调用对象的setName()方法;
name=”object”是C语言的赋值。  会直接把object赋值给当前对象的name属性

5、UITableView如果滑动起来不够顺畅,会是什么问题?怎么解决?

1.没有使用重用机制  使用重用机制
2.线程问题  开辟多线程加载数据 最后回归主线程更新UI

6、描述堆和栈的区别

堆空间由程序员分配释放,栈由编译器自动分配释放
一般普通的变量放在栈中,变量的作用域结束了,那么变量在栈中占用的内存也释放了,
用malloc开辟的空间放在堆中,如果不用free去释放,那么开辟的空间一直战胜堆的内存空间

7、如何将产品进行多语言发布

多语言就是程序的国际化。在Xcode中要实现程序的国际化,只需要简单配置,
并修改相应的字符串键值对即可。
应用程序的国际化主要包括三个方面:
A、程序名称国际化;
B、程序内容国际化;
C、程序资源国际化

**8、用变量a给出下面的定义 **

a)一个整型数  int a;
b)一 个指向整型数的指针 int *a;
c)一个指向指针的的指针,它指向的指针是指向一个整型数 int **a;
d)一个有10个整型数的数组 int a[10];
e) 一个有10个指针的数组,该指针是指向一个整型数的。Int *a[10];
f) 一个指向有10个整型数数组的指针 int (*a)[10];
g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数 int (*a)(int)
h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数 int (*a[10])(int)

9、const 意味着"只读",下面的声明都是什么意思?

Const只是一个修饰符,不管怎么样a仍然是一个int型的变量
const int a;  

int const a; 
 
const int *a;  

int * const a;  

int const * a const; 
本质:const在谁后面谁就不可修改,const在最前面则将其后移一位即可,二者等效

前两个的作用是一样,a是一个常整型数,
第三个意味着a是一个指向常整型数的指针(也就是,指向的整型数是不可修改的,但指针可以,此最常见于函数的参数,当你只引用传进来指针所指向的值时应该加上const修饰符,程序中修改编译就不通过,可以减少程序的bug)。
 
第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。
具体可参考

摘自此博客:
http://blog.csdn.net/zhoukangli/article/details/8035456

10、人事题

人事题:
1.  工作低潮时如何调适?
2.  简单介绍一下自己
3.  你怎样看公司经常开会或加班的事情?
4.  如果明知“这样做不对”,你还是会依主管的指示去做吗?
5.  谈谈你的缺点

上一篇下一篇

猜你喜欢

热点阅读