iOS开发谈(-):从面试题看基础掌握
iOS开发最基础的面试题,面试这东西,可能就是很多概念性的东西, 这些概念性的东西,虽说平常开发用处可能不多,但当你夯实基础时,万丈高楼才能起!!
1. NSInter
NSInteger是基本数据类型Int或者Long的别名(NSInteger的定义typedef long NSInteger),它的区别在于,NSInteger会根据系统是32位还是64位来决定是本身是int还是Long。
2.id 声明的对象有什么特性?
Id 声明的对象具有运行时的特性,即可以指向任意类型的objcetive-c的对象;
3.浅复制和深复制的区别?
有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,A和A_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了,内存中存在了(浅复制:对象的指针加1,对象释放,指针指向空 深复制:对象复制, 对象在内存中多处一份)
4.关键字const有什么含意?修饰类呢?static的作用,用于类呢?还有extern c的作用
const意味着"只读"
1.const int a;
2.int const a;
3.const int * a;
4.int * const a;
5.int const * a const;
前两个作用一样,a是一个常整型数
第三个:a是一个指向常整型数的指针 (也就是,整型数是不可修改的,但指针可以)。
第四个意思a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)。
最后一个意味着a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)。