240 发简信
IP属地:陕西
  • 120
    iOS runtime消息转发之objc_msgSend探究

    引言 消息转发的本质:向对象发送消息,是一个查找方法的过程。在前面我们研究过类,编译成c++本质是一个叫objc_class的struct指针, objc_class里面有一...

  • 120
    iOS 对象isa指针的底层探索

    引言 众所周知,oc是面向对象编程,最重要的一个概念就是类,最终OC中的类都要编译成c++的,那么OC重的类在c++的底层是怎么呈现的呢?打开#import<objc/obj...

  • 120
    iOS OC底层中类的结构探索

    引言 我们都知道,一个类有成员变量、对象方法、类方法,那么它们在底层是如何实现的呢? 前提 要想研究上面内容,首先要知道oc对象在c++层面对应的内容,新创建一个工程,里面创...

  • iOS之底层内存对齐

    引言 内存对齐是内存里面一个很重要的词汇,可是大部分开发者对这个词汇的含义都是一知半解。 输出结果: 结果分析: sizeof:对象类型的内存大小,sizeof是用来计算一个...

  • 120
    iOS之OC底层alloc流程

    引言 在实际iOS开发中我,我们经常会调用alloc 方法,然而对于alloc方法的底层实现原理,大部分人并不是很清楚。 一、准备工作 1、探究底层,肯定要阅读苹果源码。源码...

  • iOS之递归算法

    递归是编程语言中一种较为常见的算法,一个函数直接或间接调用自身的一种方法。当调用一次函数可能解决不了当前的问题和需求,需要重复调用,一直到达成目的。常见用法:(1)对数组降维...

  • 商品倒计时 for Swift

    因公司项目添加商品倒计时需求,故针对商品倒计时模块做了个Demo,也是对自己的总结; 经过370041534群里的朋友提醒,既然是cell上有多个倒计时,可使用一个定时器控制...

  • iOS之const、extern、static用法

    static static分两种情况,修饰局部变量和全局变量。(1)修饰局部变量在整个程序运行的过程中局部变量只初始化一次,只有一份内存,作用域是该方法或代码块内。 控制台输...

  • iOS之const与宏定义的区别

    宏定义的常见用法:定义一段代码抽成宏,或指定字符串抽成宏const(常量):当有字符串常量的时候,苹果推荐我们使用const,苹果经常把常用的字符串定义成const宏定义与c...

  • iOS之id和NSObject *的区别

    1.id在objc.h中定义 从上面可以看出,id的本质是struct objc_object结构体指针,可以指向任何OC对象。注意:这里说的是指向OC对象,像int、NSI...

  • swift之存储属性和计算属性

    swift中的属性分为两类:存储属性和计算属性1.存储属性(包含实例存储属性和类型存储属性):把常量或变量的值作为实例的一部分,可以直接读写赋值。变量可用var或者let关键...

  • 120
    图片选择器

    场景:以前只有相机拍照、相册选照片,这两种都是本地图片,获取的uiimage属性 ,如果还有网络图片,你的数组里面就有可能既有image对象,又有string的图片url地址...

  • 120
    Swift:class和struct区别

    1.property初始化的不同 对于class而言,定义class时候,属性必须赋值,否则编译不通过,有三种方式 直接赋值 可选型 构造器 对于struct而言,并没有这种...

  • iOS之KVO监听NSMutableArray

    Demo地址: https://github.com/hanhuitao/KVO-NSMutableArray.git iOS 中 KVO (key-value-observ...

  • iOS之KVO的简单使用

    demo地址:https://github.com/hanhuitao/KVO.git 概念 KVO,即:Key-Value Observing,它提供一种机制,当指定的对象...

  • Objective-C三大特性之:多肽

    概念 简单来讲:父类指针指向子类对象。 它是面向对象程序设计的一个重要特征,动态类型能使程序直到运行时才确定对象的真实类型,动态类型绑定能使程序直到运行时才确定要对那个对象调...