面试题

synthesize 和 dynamic区别 ?
  • @synthesize 的语义是如果你没有手动实现 setter 方法和 getter 方法,那么编译器会自动为你加上这两个方法
    @dynamic 告诉编译器:属性的 setter 与 getter 方法由用户自己实现,不自动生成。
是否可以把比较耗时的操作放在NSNotificationCeter ?

如果在异步线程发的通知,可以处理耗时操作
如果在主线程发的通知,不可以处理比较耗时的操作

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(dealTest) name:@"test" object:nil];
}

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

- (void)dealTest
{
    NSLog(@"dealTest-----%@", [NSThread currentThread]);
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSLog(@"%@-----", [NSThread currentThread]);
        [[NSNotificationCenter defaultCenter] postNotificationName:@"test" object:nil userInfo:nil];
    });
}

@end
Foundation对象与Core Foundation对象有什么区别 ?
  • Foundation对象是OC的,Core Foundation对象是C对象
  • Foundation对象 和 Core Foundation对象数据类型之间的可以相互转换(__bridge_retained、__bridge_transfer)
left 与leading的区别 ?
leading&trailing.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 出题者简介: 孙源(sunnyxx),目前就职于百度,负责百度知道 iOS 客户端的开发工作,对技术喜欢刨根问底和...
    戈多_于勒阅读 1,813评论 0 5
  • 家是一个给我们温暖,让我们感到爱的地方,更是一个为我们遮风挡雨的地方。 我们家一进门是客厅,东面墙上是一个大窗户,...
    毕楚晨阅读 221评论 0 0
  • 《看我七十二变》 文/白传英 我想变成杨丽萍 给母亲跳一曲孔雀舞 可惜母亲已经眼花 看不懂舞蹈的深层变化...
    白清风阅读 176评论 0 1