1、异步改同步,要求Aaa,Bbb,Ccc等顺序打印,要求多种方法
Aaa;
AsyncNetRequest^(id response){
// use response
Bbb;
}
ccc;
ddd;
fff;
...等
答案:信号量的使用。
2.写出以下代码的打印顺序
int main()
{
print Aaa;
dispatch_after_delay(1秒, ^{
// use response
print Bbb;
}
print ccc;
return 0;
}
答案:因为dispatch_after_delay由runloop驱动,这里只有一个main方法,其中没有RunLoop。类似的,如果这里加nstimer也不会走。
3.NSDictionary、NSArray我们比较常用,那么它们分别的实现逻辑是怎么样的?C++的STL是什么?
4.有一个UITabelView,有一千个网络图片需要用tableview来做一个列表的加载,cell有一个imageview用sdwebimage去显示图片。它首先会加载前边几个网络图片,如果滑动到底部,又会优先加载底部的网络图片,滑到中间又会优先加载中间的网络图片,它总是能优先加载当前看到区域的这些cell的图片,这是一个什么样的原理?YYCache的原理说一下?
5.UIView和CALayer的关系是什么?CALayer有一个属性叫content,它是一个什么类型的?一般画一个渐变图片用什么layer?layer的mask是什么类型的?
UIView有一个CALayer
id
CAGradientLayer
CALayer
6.NSNumber是一种什么设计模式?
7.请实现求根公式
int main()
{
my_sqrt(2);
return 0;
}
float my_sqrt(float val)
{
}
//输入 2
//输出 1.414