14年的面试题,仅供参考。
问答题
1、如何声明私有变量和私有方法?
2、assign,retain,copy分别起什么作用?
@property (nonatomic,retain) NSNumber *num;用代码实现这个属性的get和set方法。
3、如何声明一个delegate属性?为什么?
4、autorelease的对象何时被释放?
5、这段代码有问题吗?如何修改。
for(int i=0;i<10000;i++)
{
NSString *str = @“Abc”;
str = [str lowercaseString];
str = [str stringByAppendingString:@“xyz”];
NSLog(@“%@”,str);
}
6、UIViewController的viewDidUnload,ViewDidLoad和loadView方法分别什么时候被调用?UIView的drawRect和layoutSubviews方法起什么作用?
7、自定义NSOperation,需要实现哪些方法?
8、如何扩展obj-C里面类的方法?
9、用代码实现一个单例。
10、请用Objective-C实现一个冒泡算法。
可选题:
11、UITableView是如何重用cell的?
12、如何更高效的显示列表?
13、cocoa中的MVC是怎么实现的?
14、描述一下KVC和KVO的机制。
15、使用或了解哪些设计模式。
选择题:
1、这条语句的输出:NSLog(@“%.4f”,3.1415926)
A.3.14 B.3.141 C.3.1415 D3.14159
2、@property (nonatomic,retain) NSArray *array;
self.array = [[NSArray alloc] init];
请问array对象的retainCount是多少:
A.1 B.2 C.3 D.4
3、NSString *string = [[NSString alloc] initWithString:@“abc”];
NSString *test = string;
请问test对象的retainCount是多少:
A.1 B.2 C.3 D.4
4、NSInteger count = 100;以下那一条语句没有错误:
A. NSArray *array = [NSArray arrayWithObject:count];
B. NSString *str = [NSString stringWithFormat:@“%@”,count];
C. NSMutableArray *array = [NSMutableArray arrayWithCapacity:count];
D. NSString *str = [count stringValue];
5、以下代码没有内存泄露的是:
A.
– (NSMutableArray *)getNameList
{
NSMutableArray *list = [[NSMutableArray alloc] init];
[list addObject:@“name1”];
[list addObject:@“name2”];
return list;
}
B.
@property (nonatomic, retain) NSArray *list;
list = [[NSArray alloc] init];
self.list = nil;
C.全局变量NSString *name;
– (void)setName:(NSString *)string
{
name = [string retain];
}
D.UIButton *button = [[UIButton alloc] init];
[self.view addSubview:button];
6、@property(nonatomic) NSInteger age;以下代码有什么问题?
– (void)setAge:(int)_age
{
self.age = _age;
}
A.没有问题 B.死循环 C.内存泄露 D.不能用int类型做参数
7、下面程序的输出是:
main()
{
int a=-1,b=4,k;
k=(a++<=0)&&(!(b—<=0));
printf(“%d%d%d\n”,k,a,b);
}
A.003 B.012 C.103 D.112
8、设有:int a=1, b=2, c=3, d=4, m=2, n=2;
执行(m=a>b)&&(n=c>d)后n的值是多少?
A.1 B.2 C.3 D.4