在面向對象的語言中,Objective-C的 便利初始化函數 能夠理解爲 如 Java,C++ 中的含參數的構造函數,但又有些不一樣...函數
例如,用Student類爲例spa
首先是Student.h文件對象
#import <Foundation/Foundation.h> it
@interface Student : NSObject io
//定義屬性class
@property NSString *studentName; //學生姓名import
@property int age; //學生年齡構造函數
//含姓名參數和年齡參數的構造函數(便利構造初始化函數)gc
-(id) initWithName:(NSString *)name andWithAge:(int)age;方法
//便利構造器(是類方法)
+(id) studentWithName:(NSString *)name andWithAge:(int)age;
@end
而後是管理實現的Student.m文件
#import "Student.h"
@implementation Student
//含姓名參數和年齡參數的構造函數(便利構造初始化函數)
-(id) initWithName:(NSString *)name andWithAge:(int)age
{
if (self = [super init])
{
[self setStudentName:name];
[self setAge:age];
}
return self;
}
//便利構造器(是類方法)
+(id) studentWithName:(NSString *)name andWithAge:(int)age
{
Student *student = [[Student alloc] initWithName:name andWithAge:age];
return student;
}
@end
在main.m裏面查看用法
#import <Foundation/Foundation.h>
#import "Student.h"
int main(int argc, const char * argv[]) {
//以前的定義方法
Student *student = [[Student alloc]initWithName:@"小明" andWithAge:19];
//用便利構造器,用便利構造器能夠看出來,定義要簡單的多
Student *student1 = [Student studentWithName:@"小明" andWithAge:19];
return 0;
}