上週出了一套很基礎的 Objective-C 面試題,被吐槽說有點為難面試者了,有興趣的來做做吧~

2016-07-01 12:56:33 +08:00
 Elethom

順便打個廣告,敝司 iOS 研發工程師崗位還有一個位置,要求和 隔壁 topic 差不多,只是薪資雙倍而且可遠程。


感覺選的已經都是基礎得不能再基礎的題了,只有幾個為了考察面試者的搜索和學習能力稍有些偏。因為項目剛剛改用 Swift 用不上這些題了所以順便發出來給 V2EX 社區的各位參考下意見。題目主要考察以下幾點:

下面是面試題:

Language

1. Declare an NS_OPTIONS type BCLayoutAxis with following values:

2. Create string representations for the values above

For debugging, we need string representations ("none", "horizontal", "vertical", "all") instead of original integer values. Use a graceful approach to represent them.

3. Declare a constant value (public/private)

Declare a constant named kBCMyConstant of NSString type with value of myConstantValue, public and private.

4. Create variadic method

5. Create a singleton

6. Concatenate string literals

7. Percentage encoding and decoding

8. Reverse an array

9. Filter objects in an array by value of a property

@interface MyObject : NSObject
@property (nonatomic, assign, readonly) BOOL favorited;
@end

Given an NSArray instance containing several MyObject objects, put the objects of which favorited property are YES into a new NSArray instance.

10. Remove duplicated objects from an array

NSArray *myArray = @[@"a", @"b", @"c", @"a", @"d"];

Create a new NSArray instance from myArray containing @"a", @"b", @"c", @"d" only.

11. Determine if an NSDate instance is in this month

Runtime

1. Swizzle a method

- (void)myMethod;
- (void)bc_myMethod;

2. Determine the type of a property

@property (nonatomic, copy) NSString *myProperty;

3. Determine the caller of a method

Stack, framework, address, class, function, line.

5888 次点击
所在节点    C
55 条回复
runner
2016-07-01 23:03:29 +08:00
很 cool 的试题
so898
2016-07-01 23:22:37 +08:00
看了一眼题目表示一题都不会,好慌
然后看了一眼答案,原来都用过啊……看来看不懂的是英语……
不过要是能用 xcode + stackoverflow 的话,解题应该不是啥问题

那个 constant 看着很有感想……嗯,还是 Swift 好
so898
2016-07-01 23:27:08 +08:00
说起来,考了单例而不考 Delegate 、 Block 、 Notification 啥的,也没有考线程相关的内容,感觉整套考题语法内容偏多啊
没有 iOS 或者 Mac UIKit 相关有点测不出实战做 App 能力的感觉
有点光测了基础不够实用的感觉
大胆猜测一下,出题者应该是从 C/C++一步步转过来的,现在应该主要做 Frameworks 或者核心方法实现
enjoeq
2016-07-02 00:30:00 +08:00
不用 Google ,不用 Xcode ,我都能手动做出几道题,加上 Google 、 Xcode 和 StackOverflow 的话,我相信我能把全部都搞定,除了第 4 题看不懂题目之外,好吧,我是英语渣😂。
jamescheng
2016-07-02 00:56:28 +08:00
www.hackerrank.com 无聊的人可以去这个网站去做题...哈哈
Elethom
2016-07-02 02:42:23 +08:00
@so898
你猜錯了,是偶爾寫寫 UI 和 frameworks 代碼的設計師。
Elethom
2016-07-02 02:43:34 +08:00
@vincentxue 一年超過 400k 嗎,好厲害。 qwq
jukka
2016-07-02 08:51:21 +08:00
不用在意吐槽啦,这个是对你们自己负责,也是对面试者负责。 :)
vincentxue
2016-07-02 10:24:11 +08:00
@Elethom 不是厉害的原因,拿命换的。如果你们不加班,那算下来时薪也差不多了。我经常要工作到至少晚上 10 点,忙的时候凌晨过后。当然都不是公司强制的,活太多时间太少。这也是我稍微有点不爽的地方,虽然我很爱写代码,但是没有学习的时间了。我又没别的爱好。等经济压力小的时候我还是要考虑考虑换工作了。
Elethom
2016-07-02 12:30:47 +08:00
@vincentxue
確實不加班。除了有個遠程的同事早晚要接送孩子工作時間不同以外,都是 10:00-10:30 上班, 19:30 下班,中午午休一小時。除了運維上線偶爾會看守著基本上 19:30 下班,不到 20:00 公司就看不到人了。
其實你可以考慮換一份不加班的工作再接外包,這樣雖然工作時間沒變短但時間安排能自由些。
Elethom
2016-07-02 12:31:30 +08:00
不對,午休是一個半小時。
kepenj
2016-07-02 15:37:50 +08:00
第一反应打开了 Google 是什么鬼...看来板砖搬的有点久了(手动滑稽。。。
Geoion
2016-07-03 02:29:11 +08:00
手不听使唤已经打开了 google
vincentxue
2016-07-03 03:57:39 +08:00
@Elethom

我对外包实在是没兴趣,不喜欢不专业的人。很久很久以前接过一次外包,我就被恶心到了。可能是没遇到专业的,然而给我留下了不好的印象。而且拿着老板的薪水接外包貌似不太好,心里过不去。

我前天买了 iMac 5k ,今天下午就应该到货了。已经考虑跟公司申请远程工作,我认为应该是可以允许的。如果不允许就先辞职但一时也走不了,公司慢慢招人,我也慢慢找一个,不过薪水肯定是要降低了。目前市场看样子最多 30k 左右就封顶了,我自认为没那个自信要这个数。
nevercry
2016-07-20 23:45:55 +08:00
撸了个 Swift 版的,如果面试的时候给用 Xcode 再加 Google 这些题完全没有难度…… Runtime 就不写了……



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

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

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

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

© 2021 V2EX