美文网首页
面试题整理

面试题整理

作者: IreneWu | 来源:发表于2016-08-24 16:14 被阅读62次

    3.  __block在arc和非arc下含义一样吗?

    是不一样的。

    在MRC中block variable在block中使用是不會retain的

    但是ARC中block則是會Retain的。

    取而代之的是用weak或是unsafe_unretained來更精確的描述weak reference的目的

    其中前者只能在iOS5之後可以使用,但是比較好 (該物件release之後,此pointer會自動設成nil)

    而後者是ARC的環境下為了相容4.x的解決方案。

    所以上面的範例中

    __block MyClass* temp = …;// MRC環境下使用

    __weak MyClass* temp = …;// ARC但只支援iOS5.0以上的版本

    __unsafe_retained MyClass* temp = …;//ARC且可以相容4.x以後的版本

    5. 描述一个你遇到过的retain cycle例子。(别撒谎,你肯定遇到过)

    self.completionHandler = ^{

    // 有 retain block,直接用 self 會造成 retain cycle

    NSLog(@"%@", self);

    }

    MyViewController *myController = [[MyViewController alloc] init...];

    [self presentViewController:myController animated:YES completion:self.completionHandler];

    當有 retain block 時,應該使用 weakSelf

    __weak typeof(self) weakSelf = self;

    self.completionHandler = ^{

    // 打破 retain cycle

    NSLog(@"%@", weakSelf);

    };

    MyViewController *myController = [[MyViewController alloc] init...];

    [self presentViewController:myController animated:YES completion:self.completionHandler];

    11. 使用drawRect有什么影响?(这个可深可浅,你至少得用过。。)

    12. ASIHttpRequest或者SDWebImage里面给UIImageView加载图片的逻辑是什么样的?(把UIImageView放到UITableViewCell里面问更赞)

    13. 麻烦你设计个简单的图片内存缓存器(移除策略是一定要说的)

    14. 讲讲你用Instrument优化动画性能的经历吧(别问我什么是Instrument)

    15. loadView是干嘛用的?

    16. viewWillLayoutSubView你总是知道的。。

    17. GCD里面有哪几种Queue?你自己建立过串行queue吗?背后的线程模型是什么样的?

    18. 用过coredata或者sqlite吗?读写是分线程的吗?遇到过死锁没?咋解决的?

    19. http的post和get啥区别?(区别挺多的,麻烦多说点)

    20. 我知道你大学毕业过后就没接触过算法数据结构了,但是请你一定告诉我什么是Binary search tree?  search的时间复杂度是多少?我很想知道!

    相关文章

      网友评论

          本文标题:面试题整理

          本文链接:https://www.haomeiwen.com/subject/lbgwcttx.html