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)