美文网首页
oc 基础自定义构造方法

oc 基础自定义构造方法

作者: xq9527 | 来源:发表于2021-03-17 20:59 被阅读0次

生命属性和构造方法

//
//  Person.h
//  CustominitMethod
//
//  Created by xuqing on 2021/3/17.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface Person : NSObject{
    NSString * _name;
    NSUInteger _age;
    NSString* _sex;

}
- (instancetype)initWithName:(NSString *)name;
- (instancetype)initWithage:(NSUInteger )age;
- (instancetype)initWithName:(NSString *)name  age:(NSUInteger )age sex:(NSString *)sex;
@end
NS_ASSUME_NONNULL_END
  • 方法实现并赋值

调用已有的方法 简化代码

 //
//  Person.m
//  CustominitMethod
//
//  Created by xuqing on 2021/3/17.
//
#import "Person.h"
@implementation Person

- (instancetype)initWithName:(NSString *)name{
    self= [super init];
    if(self){
        _name=name;
        _age=0;
        _sex=@"";
       
    }
    return  self;
}
- (instancetype)initWithage:(NSUInteger )age{
 
    self =[super init];
    if(self){
        _age=age;
    }
    return  self;
    
}
- (instancetype)initWithName:(NSString *)name age:(NSUInteger )age sex:(NSString *)sex{
  
    self =[super init];
    if(self){
        _name=name;
        _age=age;
        _sex=sex;
    }
    return  self;
}
- (NSString *)description
{
    return [NSString stringWithFormat:@"name= %@, age =%zd ,sex =%@", _name,_age,_sex];
}
@end
  • 赋值第二种写法
- (instancetype)initWithName:(NSString *)name{
  
    return [self initWithName:name age:0 sex:@""] ;

}
- (instancetype)initWithage:(NSUInteger )age{
    
    return  [self initWithName:nil age:age sex:nil];
    
}
- (instancetype)initWithName:(NSString *)name age:(NSUInteger )age sex:(NSString *)sex{
    
    self =[super init];
    if(self){
        _name=name;
        _age=age;
        _sex=sex;
    }
    return  self;
}

具体实例化赋值

#import <Foundation/Foundation.h>
#import "Person.h"
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        // insert code here...
        NSLog(@"Hello, World!");
        Person * person= [[Person alloc]initWithage:20];
        person= [[Person alloc]initWithName:@"陈子豪"];
        person= [[Person alloc]initWithName:@"张冰" age:22 sex:@"女"];
        NSLog(@"%@",person);
    }
    return 0;
}

调用结果

image.png

最后总结

此文章 只是简单记录在学习iOS基础知识的 。

相关文章

网友评论

      本文标题:oc 基础自定义构造方法

      本文链接:https://www.haomeiwen.com/subject/ripecltx.html