滴滴面试总结

下面是面试滴滴的经历,总共出了四道技术面试题,说不出的辛酸。。。
日后有时间在总结答案,先记录下来


1、实现一个游戏人物GameRole,包含年龄、性别、装备(可以动态增减),不是Xcode,是一个没有提示的编辑器,徒手写,类名忘写了。。。

2、GameRole *role = [GameRole alloc] init…];     问:role的内存大小?

3、伪代码如下,这三行代码编译、运行的时候有什么问题,是会出现crash、警告或者出现其他情况,请说明原因

1
2
3
NSString *obj = [[NSData alloc] init];
NSInteger length = obj. length;
NSString *testStr = [obj stringApendString....];

4、appdelegate中的didfinishedLanch方法中,伪代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
-appdelegate:didfinishedLanch {
dispatch_async(globalqueue,^{
[self testTimer];
})
-testTimer {
NSTimer *timer = [NSTimer scheduleTimerWith:timerActiom];
}
-timerActiom {
NSLog(@“timer action”);
}

上述代码问题吗?有什么问题?怎么解决?

4、函数指针和block的区别?

答:block的本质是结构体,使用比函数指针方便,函数指针可以作为方法参数实现回调
追问:block为什么设计成结构体的方式?
答:。。。。