2012-06-05 2 views
2

내 NSManagedObject 하위 클래스에 대한 사용자 지정 설명 메서드를 쓰는 대신 self.myvarname에 해당 데이터를 인쇄하는 대신 "Myvarname"을 인쇄하거나 self.userCount를 인쇄하면 "UserCount"가 인쇄됩니까?사용자 지정 설명 메서드가 작동하지 않습니다

이 예제를 이어 : http://brandontreb.com/objective-c-tutorial-helpful-debugging-by-overriding-the-description-method/ 또한

, Xcode의 콘솔에서 내가 (아래 클래스 주어진) 찾을 수 없습니다 속성을 말하지 않는다 "포 myroominstance.name"또는 "포 myroominstance.usage"를 입력 할 때 왜?

.h 
=================== 
#import <Foundation/Foundation.h> 
#import <CoreData/CoreData.h> 


@interface Rooms : NSManagedObject 
{ 
    NSString *name; 
    NSNumber *capacity; 
    NSString *descr; 
    NSString *usage; 
} 

@property (nonatomic, retain) NSString * name; 
@property (nonatomic, retain) NSNumber * capacity; 
@property (nonatomic, retain) NSString * descr; 
@property (nonatomic, retain) NSString * usage; 

@end 


.M 
================== 
#import "Rooms.h" 

@implementation Rooms 

@dynamic name; 
@dynamic capacity; 
@dynamic descr; 
@dynamic usage; 

-(NSString *) description 
{ 
    return [NSString stringWithFormat:@"ID: %@ Name: %@ Website: %n", 
     usage ,descr,name]; 
} 

@end 

UPDATE : 1 : 여기

내 클래스입니다 =============================== ==========================

내가 어떤 탈출구를 인쇄하여 위의 NSlog 줄에 중단하는 경우
====== My break point is on this line ========== 
Room *myRoom = [Room findFirst]; 
NSLog(@"The room name is %@", myRoom.name); 
================================================ 

는 " 방 이름은 Name "이고 콘솔에"po myRoom.name "을 입력하면"Name "이 표시됩니다. "po myRoom.descr"을 입력하면 "Descr"이 표시됩니다.

답변

7

다른 사람들은 형식이 틀리지 만 틀린 나무를 짖고 있습니다. 연결된 튜토리얼에서 -description 메서드를 복사 한 것으로 보이며 클래스와 일치하도록 조정하지 않은 것 같습니다.

당신은 너무처럼 구현할 수 :

- (NSString*) description 
{ 
    return [NSString stringWithFormat:@"<%@ %p> name %@, capacity %@, descr %@, usage %@", [self class], self, name, capacity, descr, usage]; 
} 

(이하 "% d 개"서식 지정자를 사용하여 다음 capacity-intValue를 호출 할 필요가 없습니다.)

을하지만, 설명하지 않습니다 왜 디버깅 세션 중에 또는 인스턴스 중 하나에 대한 설명을 요구할 때 예상 한 결과를 얻지 못하고있는 것입니다. 질문을 수정하고 설명을 묻는 방법 및 정확히 인 의 내용을 추가하십시오. 예를 들어, 코드로 인스턴스를 로깅하고 있습니까? 그렇다면 로깅 문과 출력을 표시하십시오. 디버거에서 po을 사용하고 있습니까? 그렇다면 실제 명령과 출력을 표시하십시오.

+0

귀하의 요청에 위의 변경 사항을보십시오. – jdog

+0

그래, 뭐가 문제 야? 'myRoom' 객체 자체를 인쇄하려하지 않으므로,'-description' 메서드를 사용하지 않을 것입니다. 방금 myRoom의 특정 속성을 인쇄하고 있습니다. 그 속성이 무엇인지 당신에게 정확하게 보여주고있는 것 같습니다. 즉, myRoom의'name' 속성은 실제로 "Name"이고'descr' 속성은 실제로 "Descr"이라고 가정합니다. 너는 무엇을 기대 했는가? –

관련 문제