[享借 北京]iOS 看过来,如果你会做这样的题,请马上联系我们!我们求贤若渴!

2014-11-06 17:33:09 +08:00
 pekingcat
享借是什么:

首款基于物品分享的社交平台。目前分享经济正发展的如火如荼,我们团队相信物品所有权和使用权分离是未来的必然趋势,大量被闲置在家的物品将流转起来,也将带来巨大的商业价值。
除了我们的产品带来社会物品利用效率的极大提升外,我们一起来让大家不再执着于占有和购买,真的回归商品的乐趣。让人与人之间通过物品的分享感受到乐趣和温度。


•最好的孵化器36kr氪空间第二期团队
•顶级美元基金晨兴morningside天使轮投资
•团队主要来源于豆瓣与网易
•2014国家会议中心WISE大会路演环节第二名

-------------------题目的分割线------------------

如果能做下面的题目,并经过我们考核确保是你自己做出来的,不需要进一步面试,20k+工资+期权+多种福利,我们需要这样懂得钻研的工程师。

答案请发到job@isharent.com,请你来战!

1.下面代码的输出结果是什么?

@interface Mac : NSObject

@end

@implementation Mac

@end

@interface MacBook : Mac

@end

@implementation MacBook

- (instancetype)init {
self = [super init];
if (self) {
NSLog(@"%@", NSStringFromClass([self class]));
NSLog(@"%@", NSStringFromClass([super class]));
}
return self;
}

- (Class)class {
return [Mac class];
}

@end

int main(int argc, const char * argv[]) {
@autoreleasepool {
MacBook *mackBook = [[MacBook alloc] init];
}
return 0;
}

2.下面代码的运行结果是?
@interface MacBook : NSObject

@end

@implementation MacBook

@end

int main(int argc, const char * argv[]) {
@autoreleasepool {
BOOL res1 = [(id)[MacBook class] isKindOfClass:[MacBook class]];
BOOL res2 = [(id)[MacBook class] isMemberOfClass:[MacBook class]];
BOOL res3 = [(id)[MacBook superclass] isKindOfClass:[MacBook superclass];
BOOL res4 = [(id)[MacBook superclass] isMemberOfClass:[MacBook
superclass]];

NSLog(@"%d %d %d %d", res1, res2, res3, res4);
}
return 0;
}

3.下面的代码有什么问题吗?
@interface NSObject (MacBook)

+ (void)macbookPro;

@end

@implementation NSObject (MacBook)

- (void)macbookPro {
NSLog(@"This is a MacBook Pro.");
}

@end

int main(int argc, const char * argv[]) {
@autoreleasepool {
[MacBook macbookPro];
}
return 0;
}

4.下面的代码会?编译错误/运行中崩溃/NSLog...?
@interface MacPro : NSObject

@property (nonatomic, copy) NSString *serialNumber;

@end

@implementation MacPro

- (void)authentication {
NSLog(@"The Serial number of MacPro is %@.", self.serialNumber);
}

int main(int argc, const char * argv[]) {
@autoreleasepool {
id cls = [MacPro class];
void *obj = &cls;
[(__bridge id)obj authentication];
}
return 0;
}

@end

---------------------感谢看到这里的同学---------------------

分享是最棒的拥有
5402 次点击
所在节点    酷工作
40 条回复
pekingcat
2014-11-06 17:33:51 +08:00
我也不知道为什么格式不太对了,大家应该能明白是什么题
bingwenshi
2014-11-06 17:42:40 +08:00
哪一只来自豆厂 ?
sophymax
2014-11-06 17:47:21 +08:00
很常规的笔试题,直接作出这几道就要是不是草率了点
pekingcat
2014-11-06 17:52:16 +08:00
@sophymax 我们觉得只要是他自己做出来的,说明对于OC机制还是有一定的了解了。看样子您可以做出来啊!求答案,我们真的很需要好的iOS
xcatliu
2014-11-06 18:06:57 +08:00
发 gist 就可以显示正确的格式了
pekingcat
2014-11-06 18:08:41 +08:00
@xcatliu OK,谢谢,我下次注意
qq2511296
2014-11-06 18:12:51 +08:00
第一题执行结果为啥是那样? 有iOS开发同学解释下吗?
sophymax
2014-11-06 18:40:56 +08:00
@pekingcat 抬举我了,这些题全弄成C++版本的差不多,写ios游戏用,OC的水平仅限于必要时撸个mm文件和C++交互,或者依葫芦画瓢弄个控件让游戏来调用,在自己掌握的OC知识子集里实现功能,保证不内存泄漏,这些题目超过这个子集了,不过见过这类考察点的Java版和C++版,如果有人去刻意临时学习这些知识点,然后直接不通过面试入职的话,有可能会有不称职的人
likid
2014-11-06 18:52:57 +08:00
面试的时候会经常问这类问题的(遇到过),如果只是知其然不知其所以然,也就死记硬背了。
只要遇到过,再去找相关的答案,也就能大概的知其所以然了。
这里就会遇到一个问题,到底需要自己研究出来的呢,还是曾经看过这类知识搞懂了。
这只是 Runtime 机制的一个点,搞了两年 iOS 开发还没听过,要么是学习的内容一直在表层,要么就是不太想继续深入研究发展。

可惜了,在北京。
iDelusion
2014-11-06 19:11:31 +08:00
1,Mac Macbook.m文件已经重写了Class方法
NSObject 所有类的超类
2,不是实例 全都是0

3 类方法要用+ 不然外面调用不了
pekingcat
2014-11-06 19:30:58 +08:00
@iDelusion 谢谢
fooevr
2014-11-06 21:35:14 +08:00
@likid 可惜在北京+1
xCoder2012
2014-11-07 08:03:04 +08:00
妈蛋,这不是阳神刚做的分享吗?用这个考核没啥意义。。
caileijuve
2014-11-07 08:28:54 +08:00
我总觉得第二题是不是出的也有问题
pekingcat
2014-11-07 09:19:26 +08:00
@caileijuve 应该没什么问题
Vernsu
2014-11-07 09:27:00 +08:00
@xCoder2012 阳神是?就分享链接……
tangqiaoboy
2014-11-07 10:48:12 +08:00
不写出处么?明明是 sunnyxx 出的题。
pekingcat
2014-11-07 10:54:52 +08:00
@tangqiaoboy 其实不是,可以仔细看看,因为如果是他的,他已经给出答案了
bluebanboom
2014-11-07 17:04:14 +08:00
没仔细看,但是感觉这样的东西在工作中真用不到。
不知道考核这些的意义是什么?
谁没事去打印父类的class是啥,囧rz、
bluebanboom
2014-11-07 17:05:07 +08:00
不过也反应了你们确实需要一个真正好的iOS开发了!

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/144453

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX