@property与@synthesize的区别
2016-01-24 22:15
351 查看
上一篇文章我有讲到self.与_的区别,往往和这个问题相伴随的是我困惑的问题是"@property与@synthesize的区别"
@property的用法
@interface ViewController ()
{
NSArray *arr2;
}
@property(nonatomic,retain)NSArray *arr;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)setArr:(NSArray *)arr{
}
- (void)setArr2:(NSArray *)arr{
}
@end
如上所示的一段代码,有俩个变量arr2与arr
如果你是认真敲过相似的代码,你可以在敲代码的过程中就发现,arr的set方法似乎已经存在,而arr2的set方法需要完全手动敲定,而且需要调用才能执行。
所以@property的主要作用就是生成存取方法,及set和get方法
@sythesize的用法
承接上面的代码,我们可以在执行代码的最前面添加
@synthesize arr = _arr;这样当我们不需要执行存取方法的时候,及_arr就可以获取arr的值,
@sythesize的作用的是更改属性名称
如果我们使用
@synthesize arr = ssarr;
那么在执行文件arr就会叫做ssarr。通过ssarr就可以获取arr的值,听起来比较绕口,敲敲代码就知道什么意思了
@property的用法
@interface ViewController ()
{
NSArray *arr2;
}
@property(nonatomic,retain)NSArray *arr;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
}
- (void)setArr:(NSArray *)arr{
}
- (void)setArr2:(NSArray *)arr{
}
@end
如上所示的一段代码,有俩个变量arr2与arr
如果你是认真敲过相似的代码,你可以在敲代码的过程中就发现,arr的set方法似乎已经存在,而arr2的set方法需要完全手动敲定,而且需要调用才能执行。
所以@property的主要作用就是生成存取方法,及set和get方法
@sythesize的用法
承接上面的代码,我们可以在执行代码的最前面添加
@synthesize arr = _arr;这样当我们不需要执行存取方法的时候,及_arr就可以获取arr的值,
@sythesize的作用的是更改属性名称
如果我们使用
@synthesize arr = ssarr;
那么在执行文件arr就会叫做ssarr。通过ssarr就可以获取arr的值,听起来比较绕口,敲敲代码就知道什么意思了
相关文章推荐
- 基于Windows的Apache+Git服务器搭建
- Linux下FTP服务器的实现(仿vsftpd)
- CentOS7 Nginx负载均衡
- Hadoop_3: Hadoop I/O
- CopyFile
- Mesos入门介绍
- Linux主流架构运维工作简单剖析
- 黑客专用 Linux 发行版 Kali Linux 发布了首个滚动更新版 2016.1
- VmWare下CentOS 6.3 磁盘空间满处理操作
- GStreamer部署-Linux(ubuntu14.04)(已测试)
- Windows下用Bochs编译运行Linux-0.11
- rootfs常见文件格式解释
- linux gdb调试器
- Linux 2015 年最热门的 10 篇技术文章
- linux gvim configuration
- 分布式文件存储FastDFS(四)配置fastdfs-apache-module
- 【转】关于架构师和架构设计的一些常见误解(3)
- opencv3.1发布模块介绍
- 【转】关于架构师和架构设计的一些常见误解(2)
- 【转】关于架构师和架构设计的一些常见误解(1)