类方法
1、self指的是Class
2、可直接通过类名调用
3、在程序开始时生成,方法是连续的空间,速度快,但占内存
4、只能方法成员变量,无法访问或修改本类的实例变量
5、用于实现工具方法,类似对某个对象的扩展,或者实现单例
例子:label拓展中的方法/*快速设置label属性/
-
(UILabel *)labelWithTextColor:(UIColor *)textColor font:(CGFloat)textFont backgroundColor:(UIColor *)backColor Text:(NSString *)text;
对上面的方法可以理解为我们类方法中我们创建label,对label赋予我们传的属性,返回一个特定的label;
截屏2024-06-18 11.16.56.png
实例方法
1、self指的是对象的首地址
2、必须通过alloc实例后才能调用
3、在程序运行中生成,方法是离散的空间
4、速度较类方法更慢一点
5、与本类相关实例相关
例子:label拓展中的方法/*设置label字间距/
- (void)setColumnSpace:(CGFloat)columnSpace;
对于上面的方法可以理解为我们对拓展中的label(指的是self)进行属性的设置;
举个简单形象的例子进行简化理解:
我们盖了好多房子(创建app),在其中一个房子中A把大象放入冰箱,这个房子就是类,A把大象放到冰箱是方法,如果是类方法A把大象放到冰箱,这个方法全局调用工厂化的类,如果是实例化的方法,必须有对应的实例,这个房子推到就没了这个实例方法。对应上面的label拓展中方法进行比较;
类的实例调用是在类的生命周期中存在,当类没有了以后,对应的实例也就没有了,对应的方法也就没有了。静态类不然,只要你引用了那个静态类的命名空间,它就会一直存在,直到我们推出系统。
网友评论