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方法.

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

  • 相关阅读:
    redis集群报Jedis does not support password protected Redis Cluster configurations异常解决办法
    redis集群密码设置
    Redis 3.2.4集群实战
    Redis3.2.4 Cluster集群搭建
    redis集群环境的搭建和错误分析
    Centos iptables防火墙关闭启动详解
    动态的表格数据
    ubuntu使用抓包工具,charles
    layer结合art实现弹出功能
    禅道开源版源码安装
  • 原文地址:https://www.cnblogs.com/shaoting/p/4990788.html
Copyright © 2011-2022 走看看