网讯IOS笔试题

来源:互联网 发布:小程序如何连接数据库 编辑:程序博客网 时间:2024/05/02 02:42

网讯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< SimpleProtocol >{
}
@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 = [[UITableView alloc] initWithFrame:<#(CGRect)frame#> style:<#(UITableViewStyle)style#>];
my.delegate = self;
my.dataSource = self;

0 0
原创粉丝点击