OC 构造函数

来源:互联网 发布:主力资金净流入额 知乎 编辑:程序博客网 时间:2024/06/12 02:19

main.m

/* 构造函数 1.同swift一样,构造函数分为指定构造函数和便利构造函数。 2.类的声明,在实现的时候引用了其他类时,需要包含#import其头文件,但是在头文件中 有时候仅仅是用作类型名,不需要其内部组成时,可以简单的用@class ClassName来声明。 */#import "Person.h"int main(int argc, char * argv[]){    @autoreleasepool    {        Person *p = [Person alloc];        p = [p initConvenience: @"TestName"];    }        return 0;}

Person.h

#import <Foundation/Foundation.h>@interface Person: NSObject@property NSString *firstName;@property NSString *lastName;-(id) init; //标准构造函数-(id) initDesinated:(NSString *)firstName second:(NSString *)lastName;-(id) initConvenience:(NSString *)firstName;@end

Person.c

#import <Foundation/Foundation.h>#import "Person.h"@implementation Person-(id) init{    NSLog(@"Init");        if ( self = [super init] )    {        _firstName = @"firstName";        _lastName = @"lastName";    }    return self;}-(id) initDesinated:(NSString *)firstName second:(NSString *)lastName{    NSLog(@"initDesinated");        //原则上,指定构造函数需要实现所有成员的初始化    _firstName = firstName;    _lastName = lastName;        return self;}-(id) initConvenience:(NSString *)firstName{    NSLog(@"initConvenience");        //convenience构造函数需要调用designated函数来实现    return [self initDesinated:@"firstName" second:nil];}@end

0 0
原创粉丝点击