零碎笔记(二)

1.GCD方法使得Block中代码运行前阻塞线程方法

dispatch_time_t t = dispatch_time(DISPATCH_TIME_NOW, 0.35*1000*1000*1000);  //阻塞0.35秒,过时取消阻塞线程

dispatch_semaphore_t sem = dispatch_semaphore_create(0);    //创建一个信号量且初始信号为0

dispatch_semaphore_signal(sem); //信号量加1,该行代码可写在Block末尾

dispatch_semaphore_wait(sem,t); //信号量减1,如果>0,则向下执行,否则等待
    

2.重写init方法

-(instancetype)init{
    if(self = [super init]){
        //你要需要在init里加入的自己的方法代码
    }//这个方法是继承父类方法
    return self;
}

3.观察者模式

一视图发送通知,二视图接到通知后执行相应代码

//一视图发送通知:
[[NSNotificationCenter defaultCenter]postNotificationName:@"selfBtnClicked" object:self userInfo:_dictionary];
//此方法里的_dictionary为你想通过这个通知向二视图传递的值,必须为字典

//二视图注册并接收通知
NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
[nc addObserver:self selector:@selector(selfBtnClicked:) name:@"selfBtnClicked" object:nil];

#pragma mark 通知方法

- (void)selfBtnClicked:(NSNotification *)notification{
    //之前一视图中传来的字典存在sender.userInfo中,取出即可
    NSDictionary *dict = notification.userInfo;
}

此处参考了一位大佬的博客:

一个烂人的随手笔记 remote_roamer

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

相关阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,655评论 30 472
  • 1.介绍下内存的几大区域? 2.你是如何组件化解耦的? 3.runtime如何通过selector找到对应的IMP...
    小孩仔阅读 1,822评论 0 21
  • 一、深复制和浅复制的区别? 1、浅复制:只是复制了指向对象的指针,即两个指针指向同一块内存单元!而不复制指向对象的...
    iOS_Alex阅读 1,535评论 1 27
  • 我一本正经地 沉思 你却打扰我 用我最爱吃的 茶叶蛋。
    留子尧阅读 267评论 0 1
  • 人的逻辑推理能力本来就不是用来追求真理的,而是用来说服别人的。也就是说我们天生就都是律师思维,我们的大脑本来就是个...
    喵皇后阅读 245评论 0 0

友情链接更多精彩内容