description

자기 요약:
description 방법:
1. 내가 보기에는 주로 대상을 출력할 때 시스템에서 기본적으로 사용하면 다음과 같이 출력된다.
2. 모든 OC 대상에는 이 방법이 있다. 왜냐하면 description은 NSObject 클래스의 실례적인 방법이기 때문이다.
3. 프로그래머가 직접 대상을 인쇄할 때 시스템은 이 대상의'설명 정보'를 출력하여 외부에 이 대상이 가지고 있는 상태 정보를 알리는 데 사용한다. 시스템이 기본적으로 다음과 같이 출력한다. . 따라서 우리는 사용자 정의 클래스가'자기 설명'을 실현할 수 있는 기능을 필요로 한다면 description 방법을 다시 써야 한다.
아래 프레젠테이션:
프로그램 코드: LYXApple.h
#import <Foundation/Foundation.h>

@interface LYXApple : NSObject
@property(nonatomic,assign)int weight;
@property(nonatomic,copy)NSString *name;
-(id)initWithWeight:(int)weight Name:(NSString *)name;
@end

프로그램 코드: LYXApple.m
#import "LYXApple.h"

@implementation LYXApple
-(id)initWithWeight:(int)weight Name:(NSString *)name
{
    if (self = [super init]) {
        self.weight = weight;
        self.name = name;
    }
    return self;
}
//-(NSString *)description
//{
//    //       
//    return [NSString stringWithFormat:@" %d ,   %@",self.weight,self.name];
//}
@end

프로그램 코드:main.m

#import <Foundation/Foundation.h>
#import "LYXApple.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        LYXApple *apple = [[LYXApple alloc]initWithWeight:18 Name:@"  "];
        NSLog(@"%@",apple);
        NSLog(@"%@",apple.name);
    }
    return 0;
}

위 코드와 같이 description 메서드가 주석을 달면 출력:
2016-02-15 22:11:41.780 description[1130:52272] <LYXApple: 0x100206930>
2016-02-15 22:11:41.782 description[1130:52272]   
Program ended with exit code: 0

하지만 주석이 없으면
4
2016-02-15 22:47:50.310 description[1180:61418]  18 ,     
2016-02-15 22:47:50.311 description[1180:61418]   
Program ended with exit code: 0
이로써 리메이크를 실현했고 description의 역할도 실현했다. 이 대상에 대해 자기 묘사를 한다.

좋은 웹페이지 즐겨찾기