详解alloc、init 自定义初始化方法
来源:互联网 发布:人工智能从入门到精通 编辑:程序博客网 时间:2024/05/22 14:31
main.m文件:
int main(int argc,constchar * argv[])
{
@autoreleasepool {
int i =0;//初始化
int i2 =10;
/*
id obj = [Student alloc];
Student* stu = (Student*)obj;
stu = [stu init];
*/
//创建Student的对象并且初始化
Student* stu2 = [[Studentalloc]init];
NSLog(@"stu2 age:%d sex:%c\n",
stu2.age,stu2.sex);
Student* stu3 = [[Studentalloc]initWithAge:18andSex:'M'];
NSLog(@"stu3 age:%d sex:%c\n",
stu3.age,stu3.sex);
}
return0;
}
Student.h文件:
#import <Foundation/Foundation.h>
@interface Student : NSObject
@property int age;
@property char sex;
//自定义初始化方法
-(id)init;//无参的初始化方法是不需要初始化属性的
//有参的初始化方法需要初始化属性的
-(id)initWithAge:(int)age andSex:(char)sex;
@end
Student.m文件:
#import "Student.h"
@implementation Student
-(id)initWithAge:(int)age andSex:(char)sex{
if (self = [superinit]) {
//给属性赋值初始值
_age = age;
//_sex = sex;//直接给实例变量赋值
self.sex = sex;//先把值给属性->实例变量
}
returnself;
}
-(id)init{
/*
//super父类
id obj = [super init];
//非空验证 NULL在C语言中描述空 nil在OC中描述空
if (obj!=nil) {
//操作属性给属性赋值
}
*/
//self当前对象自己
if (self = [superinit]){
//操作属性给属性赋值
}
returnself;
}
@end
- 详解alloc、init 自定义初始化方法
- iOS 初始化方法 alloc init 与 new 的区别
- alloc、init 详解
- OC-方法之desription/alloc/init(2)
- alloc]init 时候会调用initWithFrame方法
- iOS alloc、init和new方法
- OC初始化中new和alloc init的区别
- OC初始化中new和alloc init的区别
- 025.init 初始化方法
- 025.init 初始化方法
- OC分配内存——alloc方法与init方法
- OC中new方法与alloc+init及构造方法
- 重写构造方法init与自定义构造方法的详解
- new alloc init
- new vs alloc init
- new alloc/init 区别
- alloc init问题
- [[DobbyBlok alloc] init];
- MongDB基础学习(一)
- vs2010 LINK : fatal error LNK1123: 转换到 COFF 期间失败:
- python函数参数介绍
- ubuntu命令
- MongDB基础学习(二)
- 详解alloc、init 自定义初始化方法
- Matlab 读取 XML文件
- MongDB基础学习(三)
- spring自定义标签之规范定义XSD
- System.getProperty参数详解
- linux部分文件命令练习
- 记在全国楼市高涨的后期
- 企业如何运用PRINCE2,避免项目失败——上海信息化培训中心
- 【android】绘制圆环的三种方式