zoukankan      html  css  js  c++  java
  • OC中在.h和.m中声明的属性和成员变量有何区别?

    相比Swift而言,OC规矩太多.

    差不多,.h中声明的属性和成员变量均可以在子类中访问到.而.m则不可.而属性其实也就是成员变量的一种简写,其内部自动包含了getter和setter方法.

    如图:ViewController是SubController的父类.在ViewController.h中声明成员变量imageView1和属性imageView2

    在ViewController.m中同样声明了成员变量imageView3和属性imageView4.

    在ViewController.m中

    1,通过self.xxx的方法可以出现imageView2和imageView4

    2.通过 _XXX的形式只能出现imageView2,imageView4

    3.通过XXX的形式只能出现imageView1.imageView3

    在子类SubController.m中

    1.通过self.XXX的形式只能出现imageView2

    2.通过 _XXX的形式什么都不会出现.

    3.通过XXX的形式可以出现imageView1

    开发中,一般在成员变量前面加个_.

    这样一来就明了了.

    在本类中访问,通过self.XXX可以访问到imageView2和imageView4.

    通过_XXX都可以访问,XXX则都不能

    子类中,通过self.XXX可以访问imageView2,通过_XXX可以访问到imageView1,XXX则都不能.

    (其中很多和旧版的OC语言有关,小生不了解)

    总之,差不多就是在.h中声明的属性或者成员变量在其子类中均可以访问到,只不过形式不一样.

                         在.m中声明的属性或者成员变量只能在本类中访问到.

    而属性其实就是成员变量的简写,内部自动包含了getter和setter方法.

    我的理解是这样,不知对否.

  • 相关阅读:
    centos7 源码安装python3
    gitlab 迁移
    gitlab 搭建
    亚伦史沃茨 公开信
    误删了sudo包怎么办
    在中国历史上,我个人最喜欢的三个皇帝
    安装PHP7
    Mac OS上设置Django开发环境
    The Pragmatic Programmer Quick Reference Guide
    Nginx的第一个模块-HelloWorld
  • 原文地址:https://www.cnblogs.com/shaoting/p/4990788.html
Copyright © 2011-2022 走看看