,并等待request的返回的response,而– initWithRequest:delegate:使用的是异步加载,当其完成网络访问后,会通过delegate回到主线程,并其委托的对象。
83.block的使用
使用实例
使用typed声明block
typedef void(^didFinishBlock) (NSObject *ob);
这就声明了一个didFinishBlock类型的block,
然后便可用
@property (nonatomic,copy) didFinishBlock finishBlock;
声明一个blokc对象,注意对象属性设置为copy,接到block 参数时,便会自动复制一份。
__block是一种特殊类型,
使用该关键字声明的局部变量,可以被block所改变,并且其在原函数中的值会被改变。
84.多线程与block
GCD与Block
使用 dispatch_async 系列方法,可以以指定的方式执行block
GCD编程实例
dispatch_async的完整定义
void dispatch_async(
dispatch_queue_t queue,
dispatch_block_t block);
功能:在指定的队列里提交一个异步执行的block,不阻塞当前线程
通过queue来控制block执行的线程。主线程执行前文定义的 finishBlock对象
dispatch_async(dispatch_get_main_queue(),^(void){finishBlock();});
85.App出现内存泄露时,如何追踪和解决的?
86.编写一段程序,计算数字的总和且打印数字的英文单词,例如12343,计算13,打印“one,two,three,four,three”。接受任意输入。
87.根据下面的定义
float f = 1.00;
short int i = 100;
long int l = 500L;
double d = 15.00;
确定下面的结果值和类型:
f + i;
l / d;
i / l + f;
l * i;
f / 2;
i / (d + f);
l / (i * 2.0);
l + i/(double)l;
88.编写一个名为IS_UPPER_CASE的宏,其作用如果字符是大写字母,就给出非零的值。
89.编写一个程序来替代shell里的ls命令。
90.NSTimer是否是多线程的?使用时是否要加同步锁?
91.一般在哪个函数中创建某个View的子View。
92.Objective C中Category和Extension的区别是什么?
93.运算符的运算等级。
94.写一个单例的实现代码,要求可编译。
95.写一个字符串反转的实现函数
96.写一个委托的interface,写一个代理。略
97.Overload和Override的区别?编译器如何实现这两种规则?
98.将“引用”函数作为参数有哪些特点?什么时候需要“常引用”?
99.C和Obj-C如何混用?
100.cocoa有哪些设计模式?
101.socket编程中如何判断异步connect是否成功?
102.iOS的七层模式?TCP/UDP属于哪一层?TCP/UDP有何优缺点?
103.TCP/IP中端口有何作用?
104.- (NSInteger)v1:(NSInteger)x{
NSInteger c = 0;
while (x) {
x &= x - 1;
c ++;
}
return x;
}
当x = 9999时输出是8.
PS:自己花时间收集的众多面试题,希望对大家有帮助!
文章转载自:http://www.pythonheidong.com/blog/article/3327/
|