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方法.
我的理解是这样,不知对否.
OC中在.h和.m中声明的属性和成员变量有何区别?的更多相关文章
- Object-c中的属性和成员变量的关系详解
很多人在初学移动开发的时候会对object-c中的合成存取方法感到疑惑,此处尝试为看到本文有缘人答疑解惑,鄙人才疏学浅,难免有疏漏谬误之处,热烈欢迎诸位看官拍砖指点. 1.合成存取方法: OC为增加开 ...
- c++中嵌套类,外部类访问内部类的私有成员变量
在嵌套类中,内部类可以直接访问外部类的私有成员变量,但是外部类不能直接访问内部类的私有成员变量,必须把外部类声明为内部类的友元类 /********************************** ...
- 受检查异常要求try catch,new对象时,就会在堆中创建内存空间,创建的空间包括各个成员变量类型所占用的内存空间
,new对象时,就会在堆中创建内存空间,创建的空间包括各个成员变量类型所占用的内存空间
- ios属性和成员变量写在.h文件和.m文件中 区别?
1 其实是一样的.在.m文件上只能.m文件内部的才能访问的这个变量,如果在.h文件中,其他的文件也可以访问到这个变量. 2 写.h文件里边可以和其他的类进行交互,写.m里边只是在本类中使用! 3 ...
- iOS中属性与成员变量的区别
一.类Class中的属性property 在ios第一版中,我们为输出口同时声明了属性和底层实例变量,那时,属性是oc语言的一个新的机制,并且要求你必须声明与之对应的实例变量,例如: @interfa ...
- 【转】iOS中属性与成员变量的区别
[转载自并整理 http://blog.csdn.net/itianyi/article/details/8618128] 一.类Class中的属性property 在ios第一版中,我们为输出口同时 ...
- Java中字段、属性、成员变量、局部变量、实例变量、静态变量、类变量、常量
首先看个例子: package zm.demo; public class Demo { private int Id;//成员变量(字段).实例变量(表示该Id变量既属于成员变量又属于实例变量) p ...
- 编写Java程序,创建Dota游戏中的兵营类,兵营类有一个类成员变量count、一个实例变量name和另一个实例变量selfCount。
返回本章节 返回作业目录 需求说明: 创建Dota游戏中的兵营类 兵营类有一个类成员变量count.一个实例变量name和另一个实例变量selfCount. count表示的是兵营已经创建士兵的总数: ...
- [Objective-c 基础 - 2.5] .h和.m文件,点语法,成员变量作用域
A. 命令行编译和XCode编译 1.在存在多个.m源码实现文件的情况下,若根据需要引入.m文件,使用命令行仅仅编译主.m文件即可,但是XCode会同时编译全部.m文件,会发生编译错误(重复定义全局变 ...
随机推荐
- C++一个简单的类
从基本数据类型说起: 一般情况下,c++中的基本数据类型有int ,char,,,, 但是这些数据类型是有限的,而且还是C++中自带的,缺乏灵活性 于是C++提供了一种定义自定义类型的方式----使用 ...
- Asp.Net 导出Excel数据文件
表格例子如下: <table id="tableExcel" width="100%" border="1" cellspacing= ...
- VSS Plugin配置FAQ(翻译)[转]
前言(译者) 就个人的成长历程来说,刚参加工作用的是 CVS ,前前后后有接近三年的使用体验,从今年开始使用 SVN .总的来说我更喜欢 SVN ,用起来的确很方便,例如在本地源代码文件中加一个空格然 ...
- 一步一步配置NLB(续)之深入测试
在这里http://blog.csdn.net/haoxiaozigang1/article/details/12198679跟大家分享了NLB配置的过程,下面写一些对NLB不同情况的下测试的结果: ...
- PHP FTP操作类( 上传、拷贝、移动、删除文件/创建目录 )
/** * 作用:FTP操作类( 拷贝.移动.删除文件/创建目录 ) * 时间:2006/5/9 * 作者:欣然随风 * QQ:276624915 */ class class_ftp { publi ...
- IISExpress配置文件的一个坑
现象: 昨天在处理PBS系统问题的时候意外发现两个js错误(而同样的代码在同事机器上都没有问题),如下图. 图1 图2 图3 原因分析: 初步看起来是因为页面上没有id为'form1'的form和id ...
- RelativeLayout练习
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android=&q ...
- 二模 (5) day2
第一题: 有 N 个人顺时针围在一圆桌上开会,他们对身高很敏感. 因此决定想使得任意相邻的两人的身高差距最大值最小. 如果答案不唯一,输出字典序最小的排列,指的是身高的排列.N<=50 解题过程 ...
- C++-const_cast, reinterpret_cast, static_cast的用法
/////////////////////////////////////////////////////////////////////////////// // // FileName : cas ...
- jQuery初步
1.jQuery开发步骤 jQuery是第三方开源组织基于js写的一款跨主流浏览器的实用库. (1)引用第三方js库文件,<script type="text/javascript&q ...