面试题

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的区别 ?
面试题_第1张图片
leading&trailing.png

你可能感兴趣的:(面试题)