61.写一个函数实现strlen的功能?
int sl(const char *s)
{
int length = 0;
while (*s!='') {
s++;
length++;
}
return length;
}
62.写一个代码片实现输入一个字符串"20130322152830",输出一个NSDate类型的对象,打印该对象输出2013-03-11 15:28:32
NSString * str = @"20130322152832";
NSDateFormatter * format = [[NSDateFormatter alloc]init];
format.dateFormat = @"yyyyMMddHHmmss";//设置格式
NSLog(@"%@",[[format dateFromString:str] dateByAddingTimeInterval:8*60*60]);
63.用变量a写出以下定义
a、一个整型数int a = 10
b、一个指向整型数的指针int *p = 10
c、一个指向指针的指针,它指向的指针是指向一个整型数int **p =10
d、一个有10个整型数的数组 int a[10]
e、一个有10个指针的数组,该指针是指向一个整型数的int *a[10]
f、一个指向有10个整型数数组的指针int *a = {1,2,3,4,5,6,7,8,9,10};
g、一个指向函数的指针,该函数有一个整型参数,并返回一个整型数
int *a(int b){
return b;
}
64.cocoa和 cocoa touch?
cocoa包含Foundation和AppKit框架,可用于开发Mac OS X系统的应用程序
cocoa touch包含Foundation和UIKit框架,可用于开发iPhone OS 系统的应用程序
Cocoa时Mac OS X的开发环境,cocoa Touch是 Iphone OS的开发环境
65.网络从下往上分为几层?
从下往上:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
IP 协议对应网络层,TCP 协议对应传输层,HTTP 协议对应于应用层。
socket 则是对 TCP/IP协议的封装和应用。也可以说,TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而 HTTTP 是应用层协议,主要解决
如何包装数据。
66.
67.多线程的底层实现?
线程:进程中一个特立独行的控制单元(路径)。多线程:一个进程至少有一个线程,即主线程。
①、Mach 是第一个以多线程方式处理任务的系统,因此多线程的底层实现机制就是基于 Mach 的线程。
②、开发中很少用到 Mach 级的线程,因为 Mach级的线程没有提供多线程的基本特征,线程之间是独立的。
④、开发中实现多线程的方案:
NSThread、GCD、NSOperationQueue.NSOperation
68.线程之间怎么通信?
①.performSelect:onThread:withObject:waitUntilDone:
②.NSMachPort
69.网络图片问题中怎么解决一个相同的网络地址重复请求的问题.
利用字典:图片地址为 key, 下载操作为 value.value
70.用 NSOperation和 NSOperationQueue处理 A.B.C三个线程,要求执行完 A.B 后才能执行?
//创建队列
NSOperationQueue * queue = [[NSOperationQueue alloc]init];
//创建三个操作
NSOperation * A = [NSBlockOperation blockOperationWithBlock:^{
NSLog{@"A"};
}];
NSOperation * B = [NSBlockOperation blockOperationWithBlock:^{
NSLog{@"B"};
}];
NSOperation * C = [NSBlockOperation blockOperationWithBlock:^{
NSLog{@"C"};
}];
// 添加依赖
[C addDependency:a];
[C addDependency:b];
//执行操作
[queue addOperation:a];
[queue addOperation:b];
[queue addOperation:c];