网讯IOS笔试题
答案是我自己的想法 仅供参考
1 程序在内存中运行时,内存分几个区?各自用途?
答:
栈区 由编译器自动分配释放存放函数的参数值,局部变量的值等。在高级语言中不需要显式的分配和释放
堆区 一般由程序员手动分配释放,如果不释放可有由OS释放。
数据区 存储全局和静态变量。初始化的全局和静态变量在一块区域,未初始化的放在相邻的一块区域,程序结束后由系统释放。
代码区 存放函数体的二进制代码。
2 引用与指针有什么区别?
答
引用是给变量起一个别名 也就是一个变量有两个名字 他们是同一块空间
指针是分配一块内存用来保存变量的地址 间接引用变量
3 int retVal = UIApplicationMain(argc, argv, nil, nil); 是什么意思?
答
对UIApplication对象进行了初始化,这个方法除了argc 和 argv 参数外,另外这个函数还有2个两个字符串参数来识别UIApplication类和UIApplication代理类,在这里默认是2个nil,第一个参数为nil就默认把UIApplication类作为缺省值进行初始化,可以在这里不填nil而是使用自己定义的UIApplication子类。至于第二个参数nil就设置为nil就把模板生成的HelloWorldAppdelegate类作为默认值。
4
5
6 保存一个变量到本地,列举两个简单的方法
答
直接写入writeToFile 支持NSString NSArray NSDictionary
实现NSCoding NSCopy 协议
7 如果UIView *view 已经实例化 在view 仅添加了N个UIButton类的实例,这些button不是全局的,并且button已经用tag区分开,如何快速找出其中指定的一个button改变它的某个属性?
答 [view subViewsWithtag: ];
8 当A类中的某个方法执行到某处时, 这时想在B类中执行某个方法,如何做,举出一个方法说明?
答 在A类初始化一个B类的成员就可以调用B类的方法
9 下面代码中obj2是否需要dealloc?
ClassA *obj1 = [[ClassA alloc] init];
ClassA *obj2 = obj1;
[obj1 hello]; //输出hello
[obj1 de];
[obj2 hello]; //程序能否执行到这一行?
[obj2 dealloc];
答 不需要 他和obj2指向的是同一块空间
10
11 类方法创造的对象要不要用release释放?
答 不需要 这个对象被放到自动释放池中
12 下面请求数据用了什么协议,请求的数据格式是什么?
UIWebView *webView = [[UIWebView alloc] initWithFrame:self.view.frame];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:http://pzpromop.s3.amazonaws.com/PromoNeutral.html]]];
[self.view addSubview:webView];
13 想传输一张图片,可以用什么协议传输?http ftp,
14 用NSURL初始化的NSData对象,用哪个类去解析?
15 OC中加号方法与减号的区别?
答
加号方法是类方法 属于静态方法
减号方法是实例 必须由类的实例来调用
16 如何修饰私有变量? ??问老师
17 建一个工程用到最基本的两个框架是什么?
答 cocoa Touch框架 Function框架
18 一个UITableView的实例,重新加载数据的方法是什么?
答 viewDidLoad??reloadData
19 写一个委托的interface
答
@protocol SimpleProtocol
-(void)doSomething:(NSString *)str;
@end
@interface SimpleClass:NSObject{
}
@end
@implementation SimpleClass
-(void) doSomething:(NSString *)str{
NSLog(str);
}
@end
20 OC中有没没多重继承? 如果没有用什么方法替代?
答 没有多重继承 可以委托的模型来替代
21 #import和#include的区别 @class
答 防止重复包含 @class类的前置声明 会在下边类的声明中包含某个类的对象
22 self.name = "object" name = "object"的区别
答
self.name 需要要合成属性然后系统会默认生成set get方法 所以在赋值是会调用set方法
name = "object"则直接赋值
23 实例化一个UITableView对象 要求写出关键语句
UITableView *my &#61; [[UITableView alloc] initWithFrame:<#(CGRect)frame#> style:<#(UITableViewStyle)style#>];
my.delegate &#61; self;
my.dataSource &#61; self;