类扩展

#import "ViewController.h"

/*
 匿名分类和分类的区别
 1.匿名分类没有名字, 分类有名称
 2.匿名分类不需要有对应的实现, 而分类需要有对应的实现
 3.匿名分类可以声明属性, 也可以声明方法, 分类只能声明方法
 */
/*
@interface ViewController (NJ)
//{
//    double _height;
//}
- (void)run;
// 分类中的@property只会生产getter/setter方法的声明, 不会生产实现以及私有的成员变量
@property(nonatomic, assign)double height;

@end

@implementation ViewController (NJ)
- (void)run
{

}
@end
*/

// 以后开发中但是是不需要暴露给外界的属性和方法都卸载匿名分类中
@interface ViewController ()
//{
//    int  _age;
//}
// 苹果推荐我们将属性写在匿名分类中(延展/ 类扩展)
@property(nonatomic, weak)IBOutlet UILabel *lable;

- (void)run;

@end

@implementation ViewController
// 。。。。。。
@end
时间: 2024-12-22 12:38:10

类扩展的相关文章

分类 类扩展 继承 协议 委托

分类 类扩展 继承 协议 委托 分类(Category) 不产生新类,不修改原类,但有自己的.h和.m文件 分类只能向原类中增加方法,或者重写原类的方法 声明的@property只会生成getter setter方法的声明 类.h中定义的方法必须实现,但分类.h中定义的方法,可以不实现 同名方法,分类的优先级高类别主要有3个作用:(1)将类的实现分散到多个不同文件或多个不同框架中.(2)创建对私有方法的前向引用.(类.h中未声明,但存在于.m中的私有方法,通过在分类.h中声明一下,就可以在其他类

用GCD的方式,加载网络图片(主线程加载图片+类扩展方式)

用GCD的方式,加载网络图片(主线程加载图片+类扩展方式) 用两种方法来实现网络加载图片 方法1:实现的效果:先加载背景色灰色,两秒后加载图片 - (void)viewDidLoad { [super viewDidLoad]; self.view.backgroundColor=[UIColor grayColor]; //刷新UI(在主线程中刷新UI!!!) --- 一般方法 dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PR

类别和类扩展

1.在iOS中,有一种机制可以使用户在没有源码的情况下扩展类的功能,但不是通过继承,这就是类别.iOS中没有类似C++中可以定义私有方法和私有变量的关键字,要定义私有方法和私有变量,可以用类扩展来实现.但类别不能添加类的属性和私有变量.类别可以用来扩展Cocoa中类的方法,也可以用来扩展用户自己的类中的方法.当我们查看系统头文件的时候能发现类似@interface NSMutableArray (NSExtendedMutableArray)的类定义,其实这就是类别的定义形式. 2.类 扩展,它

Objective-C基础7 : 类扩展(class extension)

封装的特性就是暴露公共接口给外边调用,C++通过public定义公共方法提供给外面调用,protected和private定义的方法只能在类里面使用,外面不能调用,若外面调用,编译器直接报错,对于变量也同理.OC里面类扩展类似protected和private的作用. 1.类扩展是一种特殊的类别,在定义的时候不需要加名字.下面代码定义了类Things的扩展. @interface Things () { NSInteger thing4; } @end 2.类扩展作用 1)可以把暴露给外面的可读

Arc 自动内存管理 分类Category 类扩展 Block 代码段 和 Protocol协议的一些简单知识的总结

1. Arc的使用 Arc是自动内存管理: arc的使用原则 1).只要对象没有任何强类型指针引用就会被释放’. 2).只要对象被任何强类型指针指引就不会被释放. 弱指针:__weak 被__weak修饰的指针就被称为弱型指针: 强类型指针 默认的指针都是强类型指针: 被__strong修饰的指针也是强类型指针. 使用Arc时可以重写dealloc方法,但是在重写方法时不能手动调用[super dealloc]: 在Arc中通过@property生成的属性如果是OC的对象那么要用Strong来修

OC中分类、类扩展、Block、协议(由协议引出的代理模式)

一: 分类(Category) 1>Category的概念:就是在不改变原来类的基础上,为类增加一些方法 (1,可以为库中定义的类增加方法:2,可以给自己定义的类增加方           法)仅仅是方法哦 好处:一个类可以有多个文件,编译器会将这些文件按一个类除了,便于团队合作. 2> 代码格式: 自定义类中加分类 Person类 #import "Person.h" @interface Person : NSObject - (void)sayHi; @end @im

类别和类扩展,从入门到懵逼。

先占坑 类别,又叫类的扩展.呵呵. 分类和类扩展的相似之处是:都可以为类添加一个额外的方法:呵呵: 类扩展 (Class Extension也有人称为匿名分类) 作用: 能为某个类附加额外的属性,成员变量,方法声明 一般的类扩展写到.m文件中 一般的私有属性写到类扩展 使用格式: @interface Mitchell() //属性 //方法 @end 与分类的区别 分类的小括号中必须有名字 @interface 类名(分类名字) /*方法声明*/ @end @implementation类名(

31-oc分类和类扩展

分类基本概念 书写Category的格式 // 分类的声明 @interface ClassName (CategoryName) NewMethod; //在类别中添加方法 //不允许在类别中添加变量 @end ClassName: 需要给哪个类扩充方法 CategoryName: 分类的名称 NewMethod: 扩充的方法 // 分类的实现 @implementation ClassName(CategoryName) NewMethod ... ... @end ClassName: 需

关于iOS 类扩展Extension的进一步深层理解

很多人可能会问  iOS的分类和扩展的区别,网上很多的讲解,但是一般都是分类讲的多,而这也是我们平常比较常用的知识:但是,对于扩展,总觉得理解的朦朦胧胧,不够透彻. 这里就讲一下我自己的理解,但是这个理解也是集合了前辈的经验来的,只不过我用大白文再延伸一点. 对于类扩展,先看这段话: 我们定义类时,在.h里写的变量如果不是public一般不能被外部直接调用,如果我有的方法不想被外部调用只给内部使用呢?至此,延展出现. 其实,延展就是类似于"定义私有方法"的一种子类. 对于如何创建: 通