Objective-C学习笔记(十七)——成员变量和属性详解
来源:互联网 发布:学校宿舍网络设计 编辑:程序博客网 时间:2024/05/02 01:46
上一篇博客简单讲解了OC中的成员变量的概念,说到成员变量,就不得不提属性。我们按照代码片段来讲解。
《代码一》:
(1)在People.h中声明一个成员变量*_peopleName,以及该成员变量对应的属性:*peopleName, 一般成员变量最好加下划线,属性不加下划线。People.h 的代码如下:
#import <Foundation/Foundation.h>@interface People : NSObject{ NSString *_peopleName;}@property(nonatomic,strong)NSString *peopleName;//属性;@end
(2)在People.m文件中,进行成员变量和属性的绑定,可以把属性理解为成员变量对外的接口,外界对属性的操作,可以理解为对成员变量的操作。注意一些关键字的使用:
#import "People.h"@implementation People@synthesize peopleName=_peopleName;-(instancetype)init{ self = [super init]; if (self) { //类内调用成员变量而不是属性,属性是给类外调用的; _peopleName=@"Jack";//默认会生成成员变量; } return self;}@end
(3)在main.m文件中,实例化People类的对象,并使用该对象操作类中的属性。main.m代码如下:
#import <Foundation/Foundation.h>#import "People.h"int main(int argc, const char * argv[]) { @autoreleasepool { People *people = [[People alloc]init]; NSLog(@"%@",people.peopleName);//这里调用的是属性; } return 0;}
(4)最后的输出结果如下,成功取出成员变量中的值。
。
《代码二》:
(1)其实在现在高版本的的OC中,并不需要手动创建成员变量,只要创建属性,系统会自动创建该属性的成员变量,我们来实现一下:
其中People.h的代码如下:
#import <Foundation/Foundation.h>@interface People : NSObject@property(nonatomic,strong)NSString *peopleName;//属性;注意我们这里没有声明成员变量;@end
(2)在People.m中,不需要绑定,这里对可以对_peopleName赋值,也可以不赋值;
#import "People.h"@implementation People//这里也不需要使用@synthesize关键字进行成员变量和属性的绑定;//@synthesize peopleName=_peopleName;-(instancetype)init{ self = [super init]; if (self) { //类内调用成员变量而不是属性,属性是给类外调用的; //这里还是会有加下划线的变量,表示系统默认生成; _peopleName=@"Jack";//默认会生成成员变量; } return self;}@end
(3)main.m的代码如下,这里可以对属性进行操作:
#import <Foundation/Foundation.h>#import "People.h"int main(int argc, const char * argv[]) { @autoreleasepool { People *people = [[People alloc]init]; people.peopleName=@"Bob";//赋值 NSLog(@"%@",people.peopleName);//这里调用的是属性; } return 0;}
(4)输出结果如下:
。
总结,我们需要搞清楚的是成员变量和属性的作用范围。成员变量在类内起作用,属性可以在类内,类外起作用。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
1 0
- Objective-C学习笔记(十七)——成员变量和属性详解
- Objective-C学习笔记(十六)——成员变量
- Objective-C学习笔记(二十四)——成员变量的访问修饰符学习
- Objective-C学习笔记(二十六)——成员变量的继承学习
- Objective-C 运行时(成员变量和属性)
- Objective-C——类、方法、属性、成员变量
- Objective-C——属性与成员变量辨析
- Objective-C——类、方法、属性、成员变量
- Runtime学习笔记(一)——成员变量和属性
- ios学习路线—Objective-C(Runtime成员变量与属性)
- iOS学习笔记56(Runtime)-Objective-C Runtime 运行时之二:成员变量与属性
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十章 变量和数据类型
- Objective-C学习笔记(二十七)——方法的重载与重写
- objective-c 成员变量与属性
- IOS学习笔记01-关于objective-c的成员属性
- Objective-C学习笔记(二十)——成员变量对对象方法与类方法的可见性分析
- 【Objective-C学习笔记】核心语法——实例变量作用域、关键字@property和@synthesize
- Programming in Objective-C 学习笔记04——变量和数据类型
- iOS编程:学习篇(八)
- CSS 之float
- 股票学习(技术04)
- minisat 安装指南
- *HDU 5305 - Friends (DFS + 剪枝)
- Objective-C学习笔记(十七)——成员变量和属性详解
- SUSE Linux源码编译安装MySQL 5.6
- RPC框架研究(二)Hadoop源码-1
- HDU 4029 Distinct Sub-matrix 后缀数组 + Hash 2011年上海网络赛I题
- HDU 5294 Tricks Device 2015 Multi-University Training Contest 1 07
- PHP 安全编程建议
- CCF 窗口 Java实现
- Hard to Play
- Linux root与普通user的转换