美文网首页
日常开发笔记(一)

日常开发笔记(一)

作者: 善良的皮蛋 | 来源:发表于2021-10-26 11:50 被阅读0次
1. __kindof

__kindof关键字的理解

一般结合泛型使用如@property (strong, nonatomic, readonly) NSMutableArray<__kindof VSMVVMCollectionViewSectionModel *> *sectionModels;表示数组可以包含model和model的子类

2.@weakify(self)、 @strongify(self)

参考讲解的很清楚,在block中使用,和我们日常使用的自定义weakSelf 、 strongSelf功能一样。

注意:深入理解循环引用,有的并不会引起循环引用,要做区分。

3. dealloc什么时候 调用
- (void)dealloc; 

什么时候回调用dealloc?
1、这个类被release的时候会被调用;
2、这个对象的retain count为0的时候会被调用;
或者说一个对象或者类被置为nil的时候;

//常用于移除通知等
- (void)dealloc{
    //移除通知
    [[NSNotificationCenter defaultCenter] removeObserver:self name:NEP_NotificationName_PerOrdereAutoMatchStore object:nil];
}
4.内联函数 NS_INLINE

内联函数的使用

5.delegate修饰符

1.对于strong
该对象强引用delegate,外界不能销毁delegate对象,会导致循环引用(Retain Cycles)

2.对于assing
assign是指针赋值,不对引用计数操作,使用之后如果没有置为nil,可能就会产生野指针。

@property (nonatomic, assign, readwrite) id delegate;
即便delegate指向的对象销毁了,delegate中依然会保存之前对象的地址,即delegate成为了一个野指针

3.对于weak:
指明该对象并不负责保持delegate这个对象,delegate这个对象的销毁由外部控制。当delegate指向的对象销毁后,delegate = nil

修饰代理delegateweak还是assign
答案:使用weak

6.关于NSNotificationCenter消息没有触发

1,消息名用宏定义统一,消息名要在编译期就能确定,

2,一定要保证先addObserver,再post,

3,一定要确保post时还没有移除监听,

4,一定要保证post时监听对象还存在
在实际的开发过程中遇到过这样一个问题,首次打开app就无法在首页接受到通知,原因是在初始化添加通知之后 执行了下面代码

 [[NSNotificationCenter defaultCenter] removeObserver:self];

移除了通知,第二次重新进入app不会执行该代码,所以就正常。真的细节决定成败。

相关文章

  • Xdebug+PhpStorm远程调试

    开发环境: Windows笔记本:日常开发使用机器,安装PHPStrom Linux远程服务器:安装php-fpm...

  • 关于笔记 || 阅读《学会写作》

    一、笔记的分类 1、笔记分日常笔记和读书笔记。 2、日常笔记,记录自己日常的生活、状态、想法等; 日常笔记不一定是...

  • [iOS]iOS如何进行SDK开发(入门)

    前言兴趣来潮突然想试试如何开发一个自己的SDK,因为之前面试有问到,顺便做个笔记。 什么是SDK开发?日常开发中,...

  • 日常开发笔记(一)

    1. __kindof __kindof关键字的理解[https://blog.csdn.net/gang5440...

  • Android 开发日常技术点笔记(一)

    经过一段时间的开发,App 二期功能大概完成,在开发过程中遇到几个技术点需要注意,在此整理记录下来。主要包括系统 ...

  • 日常开发笔记

    1.Java隐藏手机号中间四位

  • 日常开发小笔记

    一、从一个页面pop到指定页面 或者 如果退到根视图控制器的话: 二、创建完tabbar之后,要求第一次出现的页面...

  • 231|摘抄

    1.笔记分日常笔记和读书笔记。 2.日常笔记不一定是“日记”,记录的是生活中的事情和感悟。 3.日常笔记本身也是写...

  • ios个人开发资料大全

    个人日常开发工具 Xcode,有道云笔记,Alfred3(非常提高效率的工具),AndroidStudio(and...

  • 运用笔记法搜集素材

    笔记的两个作用:一是记录想法,加深印象;二是记录重要的内容。 笔记的分类:日常笔记和读书笔记 (一)日常笔记:抓住...

网友评论

      本文标题:日常开发笔记(一)

      本文链接:https://www.haomeiwen.com/subject/vbwealtx.html