iOS学习杂记
在iOS路上不断学习,修修补补的自己的知识,随手记录一下
OC 点语法的本质
- 点语法本质依然是方法调用,即消息发送的方式
- 当使用点语法时,编译器其实会转换成,消息发送的方式
- OC的点语法不过是一种语法糖,其本质没变
1 2 3 4 5 6 7
|
Student * student = [[Student alloc] init]; student.name = @"Jack"; NSString * studentName = student.name; student.study;
|
1 2 3 4 5 6 7 8 9 10
| - (void)setName:(NSString *)name { self.name = name; }
- (NSString *)name { return self.name; }
|
注意,如果是struct,那么点语法就是对成员变量的直接访问,编译器并不会转换成方法调用
struct访问成员变量的点语法,是C语言的点语法,和OC的点语法有所区别
NSLog打印对象的本质——description方法
所以,我们可以通过重写-description
方法来实现自定义打印内容,而且除了对象方法,还有类方法+description
1 2 3 4
| NSLog(@"%@",[Student description]);
|
通过重写-description
,+description
可以自定义输出内容
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| - (NSString *)description { NSLog(@"%@",self); return [super description]; }
|