美文网首页
iOS-扩展(Extension)

iOS-扩展(Extension)

作者: 丁勒个东 | 来源:发表于2020-02-27 21:56 被阅读0次

    扩展(Extension)常被用来和分类(Category)来比较,但实际上两者完全是不一样的的存在;
    分类可以看我之前写的iOS-分类(Category)
    Extension被开发者称之为扩展、延展、匿名分类.和category不同的是extension不但可以声明方法和属性,还可以声明成员变量。extension一般用于声明私有方法,私有属性,私有成员变量。
    在我们的开发中Extension是非常常见的.譬如新建的ViewController的m文件中.

    #import "ViewController.h"
    //Extension 这里可以申明属性,成员变量,方法
    @interface ViewController ()
    
    @end
    //
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view.
    }
    @end
    

    扩展(Extension)和分类(Category)最大的区别是

    1,扩展申明的属性和方法时私有的,不能被外部调用,而分类声明的是可以被外部调用的;
    2,扩展是可以声明成员变量的,而分类是不能声明成员变量的.(分类可以声明属性,但没有对应的成员变量);
    3,扩展在编译期间就已经是类的一部分,分类则是在运行时才将分类中申明的属性方法协议等添加到类中;

    相关文章

      网友评论

          本文标题:iOS-扩展(Extension)

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