obj-c属性的新的特性

简介:

在以前的objc中我们必须在接口中定义属性对应的实例方法,然后在实现文件中“同步”该属性,如下代码:

@interface Foo:NSObject{
    NSString *name;
}
@property NSString *name;
@end

@implementation Foo
@synthesize name;
@

这样十分麻烦,于是新的属性特性相当简洁,对于上面功能相同的代码,我们现在只需要这样写:

@interface Foo:NSObject
@property NSString *name;
@end

@implementation Foo
//nothing
@end

现在不需要手动再定义属性对应的实例方法,设置实现中的“同步”也不需要做了,我们可以按正常的方法读写属性:

Foo *f = [Foo new];
f.name = @"hopy"
NSLog(@"name is %s",f.name);

其实objc会自动为属性name建立一个实例方法_name,只不过它是私有的。

相关文章
|
22天前
|
JavaScript 前端开发
typeof的作用
typeof的作用
|
3月前
|
JavaScript 前端开发
如何巧妙使用`Object.keys`方法将`JS`的一个对象的特定的值赋值给另外一个对象
如何巧妙使用`Object.keys`方法将`JS`的一个对象的特定的值赋值给另外一个对象
17 0
|
4月前
|
JavaScript
为什么data属性是一个函数而不是一个对象?
为什么data属性是一个函数而不是一个对象?
28 1
|
JavaScript 前端开发
Function(函数)与Object(对象)的关系
Function(函数)与Object(对象)的关系
58 0
|
JavaScript
Object(对象)中的属性
js Object(对象)中的属性
67 0
|
存储 Java 对象存储
基础篇:Object对象
内存对齐区是什么? HotSpot VM的自动内存管理系统要求对象起始地址必须是8字节的整数倍,换句话说就是对象的大小必须是8字节的整数倍。因此当对象实例数据部分没有对齐的话,就需要通过对齐填充来补全
60 0
|
存储 JavaScript 前端开发
typeof 与 instanceof ,如何模拟实现一个 instanceof,有没有通用检测数据类型?
typeof 与 instanceof ,如何模拟实现一个 instanceof,有没有通用检测数据类型?
|
JavaScript 前端开发 API
如何解决0.1 +0.2===0.30000000000000004类问题
如何解决0.1 +0.2===0.30000000000000004类问题
如何解决0.1 +0.2===0.30000000000000004类问题
|
JavaScript 前端开发 程序员
关于var、let的顶层对象的属性
关于var、let的顶层对象的属性
79 0