iOS 微博面试题

群里搜集,整理一下,侵删。

一、 选择题
1、 定义协议时,在协议名称后加上<NSOb ject>的作用是:
A.新定义的协议遵守<NSObject>协议。
B.新定义的协议是<NSOb ject>协议的子协议。
C.遵守新定义的协议的对象,也必须遵守<NSOb ject>协议。
D. 遵守新定义的协议的对象,必须是NSObject的子类。

2、 以下代码存在的问题是:

dispatch_queue_t queue = dispatch_queue_create("com.apple.www", DISPATCH_QUEUE_CONCURRENT);
    dispatch_async(queue, ^{
        [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(actionTime:) userInfo:nil repeats:YES];
    });

- (void)actionTime:(NSTimer *)timer {
    NSLog(@"---- %@",[NSDate date]);
}

A.运行时崩溃
B.死锁
C.定时器不执行
D.定时器只执行一-次

3、 以下哪些情况容易造成循环引用?
A. dispatch async 的block 中使用self
B.使用strong 修饰delegate 属性
C. self作为NSNotificationCenter 的observer
D. self作为所持有的NSTimer 的target

4、以下哪些类跟UIView有继承关系(直接、间接的父类或子类) ?
A. UIControl
B. UIGestureRecognizer
C. CALayer
D. UIResponder

5 、下列关于OC消息机制说法不正确的是?
A、OC的实例对象的isa指针指向它的类对象,类对象的isa指针指向它的元类对象
B、OC的调用一个未实现的实例方法,我们可以在NSObject的resolveClassMethod中进行添加方法进行补救
C、OC可以运用运行时特性向Class的对象中动态添加方法
D、OC的实例方法是存放在相应实例对象的methodlist中,静态方法存在相应的类对象的methodlist中的
E、OC可以运用运行时特性向对象的Category中实现动态绑定属性,达到category添加成员变量的效果
F、OC可以运用运行时特性通过class_ addIvar ()向编译好的Class添加成员变量

6、在HTTP请求中,返回代码401和500代表下列哪两种状态
A:请求网页不存在
B:未授权
C:服务器内部错误
D禁止访问

7、以下代码输出的日志是

dispatch_sync(dispatch_get_main_queue(), ^{
        printf("1");
    });
    printf("2");

A. 12
B. 21
C.1
D.2
E. 无输出

8、在开发过程中,block的使用很容易造成内存泄漏,对于下面代码会不会造成内存问题? 需要如何处理?

[UIView animateWithDuration:0.25 animations:^{
        self.alpha = 0;
    }];

A.会造成内存问题
B. 不会造成内存问题
会的话, 要如何处理_______

9、以下代码第二行编译不通过,修改不正确的是。
NSError * error = nil;
NSError ** plError = &error;
A.__strong NSError ** pError = &error;
B.NSError __strong ** pError = &error ;
C.NSError * __strong * pError = &error;
D. NSError ** __strong pError = &error;

10、runloop Observer 可以监听的事件为:
A、进入runloop和退出runloop
B 、执行完timer 事件
C、执行source事件之前和执行完source事件
D、等待前和唤醒后

参考答案(仅供参考,如有误请指正)
1、A、C
2、C 解析:平时用定时器的时候 用scheduledTimerWithTimeInterval这个方法创建 实际上做了两个操作 一个是创建了定时器 另一个是把创建完的定时器 放到runloop里 而且都是在主线程创建 默认主线程的runloop是开启的 所以不用管 但是到了子线程里 runloop不会默认开启 所以要手动开启runloop 才能启动定时器
3、B、D
4、A、D
5、B、D、F
6、B、C
7、E 解析:死锁
dispatch_sync在等待block语句执行完成,而block语句需要在主线程里执行,所以dispatch_sync如果在主线程调用就会造成死锁
dispatch_sync是同步的,本身就会阻塞当前线程,也即主线程。而又往主线程里塞进去一个block,所以就会发生死锁。
8、B PS:感觉是个坑。如果有误,请不吝赐教
9、D
10、A、D

// 1. 创建监听者
     /**
      *  创建监听者
      *
      *  @param allocator#>  分配存储空间
      *  @param activities#> 要监听的状态
      *  @param repeats#>    是否持续监听
      *  @param order#>      优先级, 默认为0
      *  @param observer     观察者
      *  @param activity     监听回调的当前状态
      */
     CFRunLoopObserverRef observer = CFRunLoopObserverCreateWithHandler(kCFAllocatorDefault, kCFRunLoopAllActivities, YES, 0, ^(CFRunLoopObserverRef observer, CFRunLoopActivity activity) {
         
         /*
          kCFRunLoopEntry = (1UL << 0),          进入工作
          kCFRunLoopBeforeTimers = (1UL << 1),   即将处理Timers事件
          kCFRunLoopBeforeSources = (1UL << 2),  即将处理Source事件
          kCFRunLoopBeforeWaiting = (1UL << 5),  即将休眠
          kCFRunLoopAfterWaiting = (1UL << 6),   被唤醒
          kCFRunLoopExit = (1UL << 7),           退出RunLoop
          kCFRunLoopAllActivities = 0x0FFFFFFFU  监听所有事件
          */
         switch (activity) {
             case kCFRunLoopEntry:
                 NSLog(@"进入");
                 break;
             case kCFRunLoopBeforeTimers:
                 NSLog(@"即将处理Timer事件");
                 break;
             case kCFRunLoopBeforeSources:
                 NSLog(@"即将处理Source事件");
                 break;
             case kCFRunLoopBeforeWaiting:
                 NSLog(@"即将休眠");
                 break;
             case kCFRunLoopAfterWaiting:
                 NSLog(@"被唤醒");
                 break;
             case kCFRunLoopExit:
                 NSLog(@"退出RunLoop");
                 break;
             default:
                 break;
         }
     });
     
     // 2. 添加监听者
     /**
      *  给指定的RunLoop添加监听者
      *
      *  @param rl#>       要添加监听者的RunLoop
      *  @param observer#> 监听者对象
      *  @param mode#>     RunLoop的运行模式, 填写默认模式即可
      */
     CFRunLoopAddObserver(CFRunLoopGetCurrent(), observer, kCFRunLoopDefaultMode);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,185评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,445评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,684评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,564评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,681评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,874评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,025评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,761评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,217评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,545评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,694评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,351评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,988评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,778评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,007评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,427评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,580评论 2 349

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,092评论 1 32
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,339评论 8 265
  • iOS面试准备 基础 1. 为什么说Objective-C是一门动态的语言? 编译期:即编译器对语言的编译阶段,编...
    LemonFan阅读 560评论 0 1
  • 把网上的一些结合自己面试时遇到的面试题总结了一下,以后有新的还会再加进来。 1. OC 的理解与特性 OC 作为一...
    AlaricMurray阅读 2,553评论 0 20
  • 安稳下来了,身上所带盘缠无多,也不可坐吃山空,须得找份儿营生。从内衣袋里挖出带着滚烫体温及与散发着烤白薯味儿的天...
    A李二旺阅读 240评论 0 0