2013-09-29 3 views
1

description 메서드를 재정 의하여 개체의 내부 상태를 반환해야합니다. 즉, 모든 값을 텍스트 한 줄로 덤프해야합니다. 내 모델 (클래스) 내가 가지고에서개체의 설명 메서드를 재정의하고 인쇄하는 방법은 무엇입니까?

Homework.h

#import <Foundation/Foundation.h> 

@interface Homework : NSObject 

@property (nonatomic, strong) NSString *className; 
@property (nonatomic, strong) NSString *assignmentTitle; 

@end 

Homework.m

-(NSString *)description 
{ 
return [NSString stringWithFormat:@" %@, %@", self.className, self.assignmentTitle]; 
} 

나는 나의 ViewController

@property (nonatomic, strong) Homework *homeworkAssignment; 

에서 개체를 생성 에이 nyd 이처럼 인쇄하려고 시도합니다.

그러나 작동하지 않는 것으로 보입니다. NSLog의 서식을 잘못 지정 했습니까? 나는이 방법을 정확하게 무시 했습니까? 이것은 "Hello World"외의 첫 번째 앱입니다.

+1

"작동하지 않는 것 같습니다."- 대신에 무엇을합니까? '다음에 쉼표 밖으로 –

+0

출력 인쇄, – Mike

+1

가장 self.className''가능성이 모두 빈 문자열을 포함 self.assignmentTitle'. – rmaddy

답변

0

description의 구현 및 로깅과 관련하여 코드가 모두 올바르게 표시됩니다. 출력에는 쉼표 만 표시되므로 두 속성 모두에 빈 문자열이 포함되어 있음을 의미합니다. nil 인 경우 문자열 형식은 (null)으로 표시됩니다.

nil 포인터와 빈 문자열 (@"")에 대한 참조 사이에 차이가 있습니다.

+0

이제는 작동하지만 NSLog (self.homeworkAssignment.description)를 수행하면 경고가 표시됩니다. 그 말은 (서식 문자열은 문자열 리터럴이 아닙니다 : 잠재적으로 안전하지 않습니다). 내가 이걸 어떻게 없앨 수 있는지 아십니까? – Mike

+0

'Tick'에 대한 답변으로 'NSLog'를 변경하십시오. – rmaddy

+0

완벽한 감사합니다. – Mike

1

코드는 잘 작동 할 수 있습니다 이런 경우에도 단지 NSLog :

이가 널 (null) :

를 돌려 실 거예요 그래서

2013-09-29 23:56:50.375 test[2769:a0b] (null), (null) 

, 당신의 클래스 명 및 assignmentTitle에 값을 할당하려고 반환

NSLog(@"%@", self.homeworkAssignment); 

하는

+0

질문을 읽어보십시오 -'(null)'을 반환하지 않습니다. – rmaddy

+0

그럼 난 그게 나 – Ticko

+1

로 돌아하지만 영업지고 있었는지없는 무엇, 복사/자신의 코드를 붙여 그것에게 신선한 새로운 프로젝트를 시도했다. 차이점은 OP가 빈 문자열로 설정하는 동안 두 속성 (즉'(null) '출력)에 대한 값을 절대로 설정하지 않는다는 것입니다. (그 때문에 쉼표 만 있고 다른 것은 없기 때문입니다.) – rmaddy