iOS 面试题~经验找代码错误

//联系人:石虎QQ:1224614774昵称:嗡嘛呢叭咪哄

一、概念

1.指出以下这段代码的问题

- (void)test{

CGRectframe =CGRectMake(20,200,200,20);

self.alert = [[UILabel alloc]initWithFrame:frame];

self.alert.text =@"Please wait 10 seconds...";

self.alert.textColor = [UIColor redColor];

[self.view addSubview:self.alert];

NSOperationQueue*waitQueue = [[NSOperationQueuealloc]init];

[waitQueueaddOperationWithBlock:^{

[NSThreadsleepUntilDate:[NSDatedateWithTimeIntervalSinceNow:10]];

self.alert.text =@"石虎";

NSLog(@"执行一个新的操作,线程:%@", [NSThread currentThread]);

}];

}

正确修改为:

[waitQueueaddOperationWithBlock:^{

[NSThreadsleepUntilDate:[NSDatedateWithTimeIntervalSinceNow:10]];

//正确要在主线程赋

dispatch_async(dispatch_get_main_queue(), ^{

self.alert.text =@"石虎";

});

NSLog(@"执行一个新的操作,线程:%@", [NSThread currentThread]);

}];

2.写出下列程序的输出结果

typedefvoid(^BoringBlock)(void);

intmain(intargc,constchar*argv[])

{

inta =23;

__blockintb =23;

BoringBlock block1 = ^{NSLog(@"a1==%d",a);};

BoringBlock block2 = ^{NSLog(@"b1==%d",b);};

a =32;

b =32;

BoringBlock block3 = ^{NSLog(@"a1==%d",a);};

BoringBlock block4 = ^{NSLog(@"b2==%d",b);};

block1();

block2();

block3();

block4();

return0;

}

打印结果:

2017-10-3020:29:25.645石虎测试 demo[969:6507971] a1==23

2017-10-3020:29:25.646石虎测试 demo[969:6507971] b1==32

2017-10-3020:29:25.646石虎测试 demo[969:6507971] a1==32

2017-10-3020:29:25.646石虎测试 demo[969:6507971] b2==32

谢谢!!!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • @synthesize和@dynamic分别有什么作用?@property有两个对应的词,一个是 @synthes...
    笔笔请求阅读 718评论 0 1
  • { 11、核心动画 需要签协议,但是系统帮签好 一、CABasicAnimation 1、创建基础动画对象 CAB...
    CYC666阅读 1,736评论 2 4
  • 1.iOS中的round、ceil、floor函数略解 round如果参数是小数,则求本身的四舍五入.ceil如果...
    K_Gopher阅读 1,287评论 1 0
  • 最近,当朋友问起要不要二胎时,我脱口而出“不要!” 理由很充分,很有说服力。我甚至可以列出一张利弊清单,让选择一目...
    豆迪阅读 317评论 3 1
  • 文/源琪琪 图/源琪琪 【第一步】:描绘出狗狗的轮廓 【第二步】:将狗狗的毛用中性笔画出,其他部位也要适当开始突出...
    源源de源琪琪阅读 482评论 1 3

友情链接更多精彩内容