- 1、本文档共129页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
iOS面试问题大全课案
1:Object-c有多重继承吗?没有的话有什么替代?
我的回答:没有。用protocol代替
网上答案:cocoa中的所有类都是NSObject的子类。多继承在这里是用protocol委托代理来实现的
2:static作用?
我的答案:静态声明。声明一个变量或方法为静态。静态变量在类的第一次实例化时,即分配存储空间。静态方法不需要类的实例即可访问。
网上答案:(1)函数体内static变量的作用范围为该函数体,不同于auto变量,该变量的内存只被分配一次,因此此值在下次调用时扔维持上次的值。
(2)在模块内的static全局变量可以被模块内所用的函数访问,但不能被模块外其他函数访问
(3)在模块内的static函数只可被这一模块内的其他函数调用,这个函数的使用范围被限制在声明它的模块内
(4)在类中的static成员变量属于整个类所拥有,对类的所有对象只有一份拷贝
(5)在类中的static成员函数属于整个类所拥有???这个函数不接收this指针,因而只能访问类的static成员变量
4:Object-c的内存管理是如何管理的?
我的答案:引用计数:当使用alloc创建新实例或赋值retain、copy(或ARC中的strong)标识的变量时,实例或变量的引用计数即加一,当它们的引用计数为0时,则由GC回收
网上答案:如果你通过分配和初始化,(比如[[MyClass alloc] init])的方式类创建对象,你就拥有这个对象,需要负责该对象的释放。这个规则在使用NSObject的便利方法new时也同样适用。如果你拷贝一个对象,你也拥有拷贝得到的对象,需要负责该对象的释放。如果你保持一个对象,你就部分拥有这个对象,需要在不再需要时释放
5:view中的frame和bounds有什么不同?
我的答案:view的frame代表的是父类中的view的位置。view的bounds代表的是view自己的坐标及长宽
网上答案:
frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统)
bounds指的是:该view在本身坐标系统中 的位置和大小。(参照点是本身坐标系统)
6:如何在ios4.1以上使用ios3的代码(这个问题不太明白具体什么意思,按我的理解回答了)?
我的答案:在ARC项目中使用非ARC的代码,需要在编译设置里设置:-fno-objc-arc
7:请写一个委托代理的例子
.h文件
@protocol delegate;
@required
(void)dosomething;
@end
@interface DelegateSimpledelegate
@end
.m文件
#import DelegateSimple.h
@implementation DelegateSimple
(void)dosomething
{
NSLog(@%@,This is implementation of the protocol);
}
@end
8:请用block写出一个Singleton实例
+(Class *)sharedInstance
{
static Class *__singleton;
static dispatch_once_t onceToken;
dispatch_once(onceToken, ^{
__singleton = [[Class alloc] init];
});
return __singleton;
}
9:请写出你常用的多线程调用的方法
-(void)downloadStringFromURL
{
NSURL *url = [NSURL URLWithString:[NSString stringWithFormart:@%@, ]];
ASIHTTPRequest * request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
}
#pragma mark - ASIHTTPRequest异步请求回调方法
(void)requestFinished:(ASIHTTPRequest *)request
{
NSString *responseString = [request responseString];
NSLog(@%@, responseString);
}
(void)requestFailed
{
NSError *error = [request error];
NSLog(@%@, error);
}
一 C语言方法的知识
1: const? static? voilite 修辞变量各代
文档评论(0)