#import <Foundation/Foundation.h>
@interface Person : NSObject
// @property 的增强
// xcode4.4之后,可以只使用@property 而不使用 @synthesize
// 声明和实现了 _age , _name的get和set方法
// 操作的是带有下划线的实例变量
// 如果我们是当前类,没有下划线的实例变量,则系统会帮我们生成
@property int age; // 生成一个 int _age;(不能被子类继承和访问,是私有的变量,但是可以重写set方法,注意get方法和set方法在.m中可以手动实现,但是只能同时手动实现)
@property NSString *name; // 生成一个NSString *_name;
@end
/*
id obj2;
obj2 = ani;
[obj2 run];
// NSObject 和 id 都可以指向对象
NSObject 对象会进行变异时检查(需要强制类型转换)
id不需要强制类型转换,id可以直接用
编译器看到id以后,认为是动态类型,不再检查类型
instancetype和id的异同
1)相同点
都可以作为方法的返回值
2)不同点
1. instancetype可以返回和方法所在类相同类型的对象,id只能返回未知类型的对象
2. instancetype只能作为返回值,不能像id那样作为参数
*/
@property的增强使用
最新推荐文章于 2025-02-28 15:36:53 发布