美文网首页
知识点1

知识点1

作者: Hamiltonian | 来源:发表于2018-08-20 10:39 被阅读9次
 @property 的本质是什么? @property = ivar(成员变量) + getter + setter;
iOS:[深入理解 **KVC\KVO** 实现机制 **— KVO**](https://www.cnblogs.com/zy1987/p/4616764.html)

[**https://www.jianshu.com/p/7728afc1cb82**](https://www.jianshu.com/p/7728afc1cb82)

 ios 常见的class 的关系

Oc - swift [http://www.cocoachina.com/ios/20180615/23825.html](http://www.cocoachina.com/ios/20180615/23825.html)

**iOS**类方法、实例方法、构造方法:[https://www.jianshu.com/p/9d38caa5c98a](https://www.jianshu.com/p/9d38caa5c98a)

类方法:静态方法或者工厂方法,是指用static关键字修饰的方法,此方法属于整个类

实例方法:此方法是不用static关键修饰的方法

构造方法:初始化对象的方法!一般来说OC中创建一个对象分为两部分 alloc分配内存空间 init初始化对象
- (instancetype)init
{
  self = [super init];
  if (self) {      
  }
return self;
}
// 实现自定义构造函数 在初始化的时候为属性赋值 
-(instancetype)initWithName:(NSString *)nameString height:(NSInteger)height{
    if (self = [super init]) {
        self.name = nameString;
        self.height = height;
    }
    return self;
}
+(instancetype)modelWithName:(NSString *)nameString height:(NSInteger)height{
    Model *model = [[self alloc]init];
    model.name = nameString;
    model.height = height;
    return model;
}
例子:利用自定义的构造方法创建一个Model对象,重写description和debugDescription这两个方法并且用运行时遍历对象属性打印。
工厂方法:
+(instancetype)model;
**weak**和**assign**的区别**:https://www.jianshu.com/p/a8a43ae15dcd
assign = unsafe_unretained (MRC)可能导致野指针问题!
weak:不会导致野指针问题 !
【init/initWithFrame调用机制】:init 内部会调用父类的 initWithFrame: 方法,只不过传入的 frame 的值为0,然后父类的 initWithFrame: 方法发现当前的调用对象是子类对象,所以就调用了子类的initWithFrame方法了。这是一个多态的应用。
什么是Block,block的本质一样,  都是函数指针,[函数](https://baike.baidu.com/item/%E5%87%BD%E6%95%B0/301912)指针是指向函数的指针[变量](https://baike.baidu.com/item/%E5%8F%98%E9%87%8F/3956968)。

GCD和NSOperation的优缺点!

**iOS**程序中的内存分配栈区堆区全局区(静态区)常量区方法区:[**https://blog.csdn.net/shi520fu/article/details/70237459**](https://blog.csdn.net/shi520fu/article/details/70237459)

Block不允许修改外部变量的值,这里所说的外部变量的值,指的是栈中指针的内存地址。

__block 所起到的作用就是只要观察到该变量被block所持有,就将外部变量在栈中的内存地址放到了堆中!

同理Block为什么要被Copy修饰,因为要从栈复制到堆里面
[http://www.cocoachina.com/ios/20180411/22975.html](http://www.cocoachina.com/ios/20180411/22975.html)

[http://www.cocoachina.com/ios/20180424/23147.html](http://www.cocoachina.com/ios/20180424/23147.html)

[https://www.jianshu.com/p/14efa33b3562](https://www.jianshu.com/p/14efa33b3562)

[https://www.cnblogs.com/yajunLi/p/6203222.html?utm_source=itdadao&utm_medium=referral](https://www.cnblogs.com/yajunLi/p/6203222.html?utm_source=itdadao&utm_medium=referral)

[https://www.jianshu.com/p/a41396ff0247](https://www.jianshu.com/p/a41396ff0247)

[https://blog.csdn.net/shi520fu/article/details/70237459](https://blog.csdn.net/shi520fu/article/details/70237459)
Timer计时会被scrollView的滑动影响的问题可以通过将timer添加到NSRunLoopCommonModes(kCFRunLoopCommonModes)来解决。代码如下:

相关文章

  • 路径和命令重定向-06-21

    一、本文介绍 1.路径知识点; 2.命令知识点; 二、具体内容 1、路径知识点: 1. mkdir /data ...

  • 【文魁大脑实用记忆第二期】萧进才第20次《机械、经济学知识点》

    1、静态指标知识点 2、动态指标知识点 3、不确定分析知识点 4、夹具知识点 5、定位知识点

  • JS 基础知识点(下)

    【1】考题复习 【2】this 知识点: 【练习】 【3】arguments 知识点: (1)指向 函数自身引...

  • 30进阶:把 jQuery 加到简历里

    1. 无缝轮播 实现方法一: 知识点---1 知识点---2 知识点---3 2. DOM事件模型 DOM事件的开...

  • ppt

    知识点一:文字修饰 1、字体设置 2、文字输入 3、项目符号的设置与取消 知识点二:背景设置 1、填充背景 知识点...

  • 知识点1

    1.一个人学习做一件事的时候,启蒙的师父很重要,因为如果遇到了一个野路子的师父,学一堆坏毛病,将来纠正也纠正不过来...

  • 知识点1

  • 知识点(1)

    MessageQueue:就是一个消息队列,可以添加消息,并处理消息 Hanlder内部会跟Looper进行关联,...

  • 知识点1

    1

  • 知识点(1️⃣)

    目的是为了一个数组里,找两个值的和等于预设的那个值,输出那两个值的下标。思路很简单的,但是是最老土的方法了,里面有...

网友评论

      本文标题:知识点1

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