收集了一些ios面试的一些基础的试题,其中也有一些较难的
1.请简述UIView与CALayer有什么不同。
2.Block什么情况下会保留实体内引用到外部对象,什么时候要用__block或__weak ?
3.NSDictionary类使用了哪些数据结构和算法?
4.类方法、实例方法与Runtime特性的联系?
5.block调用时,变量的生命周期有哪几种,分别是什么样的?
6.CALayer的多个Sub layer的数据结构,以及重绘顺序?
7.你有多少种方法为UIImage添加一个圆角
8.CoreAnimation是如何开始和结束显示动画?
9.如何把NSArray里NSNumber对象以顺序或反序排序?
10.如何从Core-Data数据库取数据?
11.Core-Data是线程安全吗,如不是,可以怎样做才可以是线程安全?
12.如何实现asynchronous dispatch block?
13.在ARC里,弱引用和强引用有什么区别?
14.view第一次起动时的生命周期是什么呢?重载(reoload)及移除(remove)时生命周期又是什么?
15.UITableView及UICollectionView有什么区别?
16.动态绑定
17.在ARC的情况下,容易造循环引用的情况有哪些?
18.怎么理解MVVM,在cocoa中MVVM如何实现?
19.给定一个单向链表,求出该链表倒数第m个元素(m>0)
struct Item{
int iValue;
Item *pNext;
};
Item setIttem(Iitem *item,int m);
20.非递归实现折半查找数据元素x
int serach(int a[],int x, int low,int high){
int mid;
if(low>high) return -1;
while(low <= high){
mid = (low +high)/2;
if(x == a[mid]) return mid;
else if(a[mid] <x) low = mid +1;
else if (a[mid]>x) high = mid -1;
}
return -1;
}
2.Block什么情况下会保留实体内引用到外部对象,什么时候要用__block或__weak ?
3.NSDictionary类使用了哪些数据结构和算法?
4.类方法、实例方法与Runtime特性的联系?
5.block调用时,变量的生命周期有哪几种,分别是什么样的?
6.CALayer的多个Sub layer的数据结构,以及重绘顺序?
7.你有多少种方法为UIImage添加一个圆角
8.CoreAnimation是如何开始和结束显示动画?
9.如何把NSArray里NSNumber对象以顺序或反序排序?
10.如何从Core-Data数据库取数据?
11.Core-Data是线程安全吗,如不是,可以怎样做才可以是线程安全?
12.如何实现asynchronous dispatch block?
13.在ARC里,弱引用和强引用有什么区别?
14.view第一次起动时的生命周期是什么呢?重载(reoload)及移除(remove)时生命周期又是什么?
15.UITableView及UICollectionView有什么区别?
16.动态绑定
17.在ARC的情况下,容易造循环引用的情况有哪些?
18.怎么理解MVVM,在cocoa中MVVM如何实现?
19.给定一个单向链表,求出该链表倒数第m个元素(m>0)
struct Item{
int iValue;
Item *pNext;
};
Item setIttem(Iitem *item,int m);
20.非递归实现折半查找数据元素x
int serach(int a[],int x, int low,int high){
int mid;
if(low>high) return -1;
while(low <= high){
mid = (low +high)/2;
if(x == a[mid]) return mid;
else if(a[mid] <x) low = mid +1;
else if (a[mid]>x) high = mid -1;
}
return -1;
}
21.MVC优点不正确的是?
A.低耦合性,B.高重用性和可适用性 C、较低的生命周期成本 D、代码高效率
22.下面哪个方法不属于NSObject和内省(Instrospection)方法?
A、inti, B、isKindOfClass C、responseToselector D、isMemberOfClass
23.OC中线程中描述不正确的是?
A.使用NSThread创建、使用GCD的dispatch
B.直接使用NSOperation,然后将其加NSOperatinQueue;
C.在主线程执行代码,方法时performSelectorOnMainThread
D.如果想延时执行代码可以用performSelector:onThread:withObject:wainUtilDone:
24.
iPhone5分辨率320*568,像素640*1136 @2x
iPhone6分辨率375*667,像素375*1334 @2x
iPhone6 Plus分辨率414*736,像素1242*2208 @3x(注意这个分分辨率下渲染后,图像
等比降低pixel分辨率至1080p(1080*1920)