百度面试题集合

匿名网友 匿名网友 发布于: 2016-06-30 00:00:00
阅读 259 收藏 0 点赞 0 评论 0

一面

static关键字的作用是什么?
  • static关键字主要是用来声明全局变量的。它的内存只被分配一次,下次使用时仍维持上次的值。
  • 我们可以在一个类中声明一个static变量,那么这个变量就可以在所有的类中声明的方法中使用,但是不能被其他类的函数访问。
  • 我们经常会在cellForRow那个UITableviewCell的代理方法中做如下声明:
    static NSString *CellIdentifier = @"Cell"

这个CellIdentifier只能在该方法体内访问,其他方法无法去访问

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self run];
    age++;
    [self run];
    // Do any additional setup after loading the view, typically from a nib.
}

- (void)run {
    static NSInteger age = 10;
    NSLog(@"xiaoming's age is :%ld",(long)age);
}
@end

就像上面,age++就会报错,因为我们是声明在run函数里面的,所以只能在run函数里访问。

ARC下NSString属性用copy和strong修饰的区别是什么?
  • 在ARC情况下,如果源字符串是NSString时,由于字符串不可变,所以不管是strong还是copy属性的对象,都是指向源对象,copy只是进行了浅拷贝。
  • 而如果源字符串是NSMutableString的话,strong是强引用,只是增加了源字符串的引用计数,而copy则是对源字符串进行了深拷贝,产生了一个新的对象,而且开辟了新的内存空间。此时如果我们修改源字符串的值,那么strong特性的字符串也会跟着修改,而copy的则不变。
  • 大多情况下,建议使用copy,因为一般我们将对象声明为NSString时,都不希望它改变。
直接定义一个字符串的变量,会有默认的修饰符,这个修饰符是什么?

对于(普通的OC对象来说)字符串变量默认的修饰符是atomic,readwrite,strong 对于基本的数据类型默认的关键字是assign,atomic,readwrite

请手写MRC下一个NSString *a 的setter方法
- (void)setA:(NSString *)a {
    if(_a != a) {
        [_a release];  //释放旧值
        _a = [a retain];   //保持新值
    }
}
请解释一下+load和+initialize两个方法的用法是什么?
  • 用法
  • 区别:
    • load只要类所在文件被引用就会被调用,而initialize是在类或者子类的第一个方法被调用前调用。意思就是如果我们使用#inport就会调用load方法,但是不会调用initialize方法,只有在该类的或者子类的第一个方法被调用前才会调用。换句话说就是如果类实例化了或者其类方法调用了,那么就会执行initialize方法。
    • load方法调用顺序:父类的优于子类的,类中的方法优于类别中的方法。
  • 相同点:
    • 方法只会调用一次
    • 他们都是静态初始化器,类似与java的static{};类加载块。
    • 我们不需要在这两个方法中使用super调用父类的方法。
    • 如果该类没有实现load那么不管超级类如何实现,系统都不会调用此类的load方法。
loadView方法的作用是什么?

loadView在每一次使用self.view这个属性,并且self.view为nil的时候被调用,用以产生一个有效的sefl.view.

  • 通知,代理,KVO的区别,以及通知的多线程问题?
  • 怎么调试EXC_BAD_ACCESS错误?
  • Runtime项目用到没?
  • SEL和IMP的区别?
  • 设计一个图片缓存机制,具体用到什么存储?对展示图片加载table很慢如何操作?
  • 仿照浏览器的收藏网页功能?

二面

  • 在网络较差的情况相爱,特定一个网络请求可能会耗时2-4秒,此时怎么做提高用户体验?
  • 预约会议室,会有n个团队预约当天会议室,时间各不相同,求最少需要几个会议室?例如:1预约的时间是9-11,2预约的时间是10-12,3预约的时间是12-14,此时会议最小个数是2个。

评论列表
文章目录