OC学习笔记
属性(property)和成员变量
- 属性为了让类外可以访问成员变量
- 属性就是成员变量的外部接口
- 在类内调用成员变量而不是属性,属性是给类外使用的
- 在新版本的iOS SDK中,只要声明了属性系统就会自动生成成员变量。
例如:
@property(nonatomic,strong)NSString *people;
则在类内可以直接调用成员变量_people。
- 属性可以用点(.)语法调用
方法
- []调用方法,详情如下
@interface People : NSObject
/*
声明方法
- 、+ 是方法的类型,(-代表对象方法(用对象名来调用),+代表类方法(用类名来调用)),
(加号方法和减号方法可以互相调用,但是需要类名和实例化变量,加号方法不能调用成员变量。)
*/
- (void)report;
+ (void)report;
@end
在对象方法中调用类方法,和在类方法中调用对象方法
/* .m文件对方法的实现 */
- (void)report
{
NSLog(@"- 号: report");
[People report1];
}
+ (void)report1
{
NSLog(@"+ 号:report1");
[[People alloc] report];
}
- 对象方法中可以调用成员变量
- 初始化方法
//初始化方法
- (id)init;
/* id类型是万能类型,可以返回各种类型对象 */
-(instancetype)init;
/* instancetype代表当前类的类型 */
对于选择哪个,在初始化方法中都行,对于其他的一些方法,填id会导致错误,一般填写instancetype。
关于id和instancetype
如下代码
@interface