objective-c 变量前加下划线"_"是什么意思?
作者:王涛
链接:http://www.zhihu.com/question/26605346/answer/33392620
来源:知乎
作者:王涛
链接:http://www.zhihu.com/question/26605346/answer/33392620
来源:知乎
这是苹果的编程规范(也说不上规范,就是算是习惯吧),声明的property如果没有特意指定synthesize的话,那么Objective-C就会自动的给你声明一个_开头的实例变量。
例如声明了一个叫param的property
@property (nonatomic, copy)NSString *param;
通过_param进行存取的话是不会调用该变量的setter或者getter方法的,声明的copy也就不会起作用,而通过self.param调用的话是会调用setter或者getter方法的,这样copy也就会起作用。
这样是通过自动的方式给你生成了一个_开头的变量,你当然可以不这样用,例如你在上面声明完property后,你可以在实现文件中再这么写
@synthesize param = param;
这样就没有了_param,取而代之的就是param,他们是一样的。
所以这仅仅就是一个编程习惯的问题,最早之前这个@synthesize是需要我们自己去写的,所以根据个人习惯就会有不带_的实例变量,而后来苹果把@synthesize自动完成了,不需要我们去写了,而起使用的是苹果那边的编程习惯,故而就是_开头了。
例如声明了一个叫param的property
@property (nonatomic, copy)NSString *param;
通过_param进行存取的话是不会调用该变量的setter或者getter方法的,声明的copy也就不会起作用,而通过self.param调用的话是会调用setter或者getter方法的,这样copy也就会起作用。
这样是通过自动的方式给你生成了一个_开头的变量,你当然可以不这样用,例如你在上面声明完property后,你可以在实现文件中再这么写
@synthesize param = param;
这样就没有了_param,取而代之的就是param,他们是一样的。
所以这仅仅就是一个编程习惯的问题,最早之前这个@synthesize是需要我们自己去写的,所以根据个人习惯就会有不带_的实例变量,而后来苹果把@synthesize自动完成了,不需要我们去写了,而起使用的是苹果那边的编程习惯,故而就是_开头了。
相关推荐
objective-c-II-br_lesson_1-源码.rar
Cocoa_and_Objective-C_up_and_running.pdf 英文版
Objective-C程序设计 第4版_13094138.pdf
Learn_Objective-C_on_the_Mac_(Apress_2009).pdf中文版_第1章-
[弃用]可以显示手势教程的视图_Objective-C_Objective-C++_下载.zip
这儿的运行时系统扮演的角色类似于Objective-C语言的操作系统,Objective-C基于该系统来工作。本文档将具体介绍NSObject类以及Objective-C程序是如何和运行时系统交互的。特别地,本文档还给出来怎样在运行时动态地加
XXTea 加密算法的 Objective-C 包装器_代码_下载
Learn_Objective-C_on_the_Mac_(Apress_2009).pdf
微信小助手_Objective-C_Rich Text Format_下载.zip
[Objective-C]关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects) - 站在巨人的肩膀上 - 博客频道 - CSDN.NET1
Objective-C.2.0程序设计_原书第2版
PIC 微控制器电子代码,主要为Microchip 的 XC8 编译器编写。 PIC 库的亮点包括: ST7565 显示器的驱动程序 一个支持正确字体的简单图形库 支持常见任务的脚本和文件,包括: 用于将 Proteus ARES 输出转换为...
Object-Oriented_Programming_with_Objective-C
Objective-C语言的许多决策可以在编译和运行时执行。只要有可能,它是动态的。这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统...
objective-c编程 第2版=objective-c program 2nd edition_13889311
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...
Objective-C高级编程 iOS与OS X多线程和内存管理.pdf
Matrix-iMessage木偶桥_Go_Objective-C_下载.zip