04일차 OC 언어(11): 사용자 정의 구조 방법

2230 단어
4
  • 내일까지 기다리지 마세요. 내일은 너무 멀어요. 오늘 행동하세요

  • 수독: 이 문장을 다 보고 나서 당신은 무엇을 할 수 있습니까?
    사용자 정의 구성 방법
    학습 전: 당신은 반드시 무엇을 할 줄 알아야 합니까?
    구성 방법 소개
       OC init , 
         : ,   
    

    노트
      :
      init 
     1. 
     2. id/instancetype
     3.   init 
     //    0 
     //    1   
    
    

    코드
    main.m
    #pragma mark 11- 
    #pragma mark  
    /*
      :
      init 
     1. 
     2. id/instancetype
     3.   init 
     //    0 
     //    1   
     */
    #pragma mark -  
    #import 
    #pragma mark  
    
    #import "Person.h"
    
    #pragma mark - main 
    int main(int argc, const char * argv[])
    {
        
    //    Person *p = [Person new];
    //    Person *p = [[Person alloc]init];
    //    p.age = 20;
    //    Person *p = [[Person alloc]initWithAge:33];
    //    Person *p = [[Person alloc]initWithName:@"lys"];
        Person *p = [[Person alloc]initWithAge:33 andName:@"lyt"];
        NSLog(@"%@",p);
        
    //    Person *p2 = [[Person alloc]init];
    //    Person *p2 = [[Person alloc]initWithAge:55];
        Person *p2 = [[Person alloc]initWithName:@"lyh"];
        NSLog(@"%@",p2);
        
        return 0;
    }
    
    

    Person
    >>>.h
    #import 
    
    @interface Person : NSObject
    
    @property int age;
    @property NSString *name;
    
    /*
      :
      init 
     1. 
     2. id/instancetype
     3.   init 
     */
    
    
    //    0 
    - (instancetype)initWithAge:(int)age;
    - (instancetype)initWithName:(NSString *)name;
    
    //    1   
    - (instancetype)initWithAge:(int)age andName:(NSString *)name;
    
    @end
    
    >>>.m
    #import "Person.h"
    
    @implementation Person
    
    - (instancetype)init
    {
        if (self = [super init]) {
            _age = 10;
        }
        return self;
    }
    
    - (instancetype)initWithAge:(int)age
    {
        if (self = [super init]) {
            _age = age;
        }
        return self;
    }
    
    - (instancetype)initWithName:(NSString *)name
    {
        if (self = [super init]) {
            _name = name;
        }
        return self;
    }
    
    - (instancetype)initWithAge:(int)age andName:(NSString *)name
    {
        if (self = [super init]) {
            _age = age;
            _name = name;
        }
        return self;
    }
    
    - (NSString *)description
    {
        return [NSString stringWithFormat:@" age = %i , name = %@",_age,_name];
    }
    
    @end
    
    

    좋은 웹페이지 즐겨찾기