尝试为我的 NSManagedObject 子类编写自定义描述方法,它不是在 self.myvarname 中打印该数据,而是打印出“Myvarname”或打印 self.userCount,它打印出“UserCount”?
遵循这个例子:http://brandontreb.com/objective-c-tutorial-helpful-debugging-by-overriding-the-description-method/
此外,为什么当我在 xcode 控制台中键入“po myroominstance.name”或“po myroominstance.usage”时它说没有找到属性(给定下面的类)?
这是我的类(class):
.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
更新 1:============================================ =============
====== My break point is on this line ==========
Room *myRoom = [Room findFirst];
NSLog(@"The room name is %@", myRoom.name);
================================================
如果我在上面的 NSlog 行中断,顺便打印出“The room name is Name”,然后在控制台中键入“po myRoom.name”,我得到“Name”。如果我输入“po myRoom.descr”,我会得到“Descr”。
最佳答案
其他人都没有完全正确地格式化,但无论如何他们找错了树。您似乎从您链接到的教程中复制了 -description
方法,但没有调整它以匹配您的类(class)。
你可以这样实现它:
- (NSString*) description
{
return [NSString stringWithFormat:@"<%@ %p> name %@, capacity %@, descr %@, usage %@", [self class], self, name, capacity, descr, usage];
}
(无需在 capacity
上调用 -intValue
然后使用“%d”格式说明符。)
但是,这并不能解释为什么您在调试 session 期间或询问您的一个实例的描述时没有得到预期的结果。请编辑您的问题并添加您如何请求描述的细节以及您确切得到的内容。例如,您是否在代码中记录您的实例?如果是这样,显示日志语句和输出。你在调试器中使用 po
吗?如果是,请显示实际命令和输出。
关于objective-c - 自定义描述方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10904775/