Objective-C 构造方法

使用场景

实例化一个对象需要两步,第一步为对象分配内存空间,第二步讲对象初始化,对象初始化通过NSobject中的nint方法实现。为了让对象在初始化时其对象就有值,就要使用狗造方法

步骤

1. 通过 [super init]调用父类的初始化方法。 
2.检查父类返回的对象,如果不为空再进行操作。
3.在初始化实例对象时,如果他们是其他对象的引用,则在必要时应该注意保留。
4.为变量设置初始值,返回self。

示例:

//phone.h
#import <Foundation/Foundation.h>

@interface Phone : NSObject
@property(nonatomic,assign)int number;
@property(nonatomic)NSString* brand;
@end

//phone.m
#import "Phone.h"

@implementation Phone
-(id)init
{
    self =[super init];
    if (self!=nil) {
        _number =10086;
        _brand = @"华为";
    }
    return self;
}
@end

自定以构造方法

init方法不能接收参数,若要在init时传入参数,需要自定义构造方法。
一般自定义构造方法名以 initWith开头:


//phone.h
-(id)initWithBrandAndNumber:(NSString*)brand:(int)number;
//phone.m
#import "Phone.h"

@implementation Phone

-(id)initWithBrandAndNumber:(NSString *)brand :(int)number
{
    self =[super init];
    if (self!=nil) {
        _brand = brand;
        _number =number;
    }
    return self;
}
@end

//main
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        Phone *p1 = [[Phone alloc]initWithBrandAndNumber:@"三星" :10087];
        
        NSLog(@"品牌为%@的电话号码为%d",p1.brand,p1.number);
    }
    return 0;
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值