2011-09-28 3 views
2

struct의 내용을 기록하기 위해 코코아 프레임 워크에서 description 함수를 사용할 수 있는지 알고 싶습니다. 예를 들어설명을 사용하여 구조체 인쇄

typedef struct {float a,b,c;}list; 
    list testlist = {1.0,2.5,3.9}; 
    NSLog(@"%@",testlist); //--> 1.0,2.5,3.9 
+0

지금까지 내가 아는 한, 아님. 'description '이 작동하기위한 Objective-C 객체 여야합니다. –

답변

6

아니오 description : 당신이 구조체를 로그인 할 때

NSString * pretty_string_from_list(list l){ 

    return [NSString stringWithFormat:@"<list: [%f, %f, %f]>", l.a, l.b, l.c]; 
} 

그런 다음 그 함수를 호출

당신은 당신의 구조체의 내용으로 꽤 NSString를 만들기 위해 자신의 기능을 쓸 수 있습니다 메시지는 NSObject 프로토콜에있는 메소드이므로 정의에 따라 객체 여야합니다. 그러나 LOG_EXPR() 매크로를 사용하면보다 편리하게 로그 디버깅 할 수 있습니다. 이 목적 및 구조체를 취할 것이다

LOG_EXPR(testlist);

는 어느 것 출력 :

testlist = {1.0, 2.5, 3.9};

이 코드는 here입니다.

1

description는 방법과 같은 단지 객체 호출 할 수있다. 결과적으로 %@ 형식 지정자는 description에 응답하는 개체에만 작동합니다.

NSLog(@"%@", pretty_string_from_list(testlist));