Objective c 自定义描述方法不起作用
尝试为NSManagedObject子类编写自定义描述方法,而不是在self.myvarname中打印该数据,它打印“myvarname”或打印self.userCount它打印“userCount” 遵循以下示例: 另外,为什么在xcode控制台中键入“po myroominstance.name”或“po myroominstance.usage”时会说找不到属性(给定下面的类) 这是我的班级:Objective c 自定义描述方法不起作用,objective-c,ios,xcode,Objective C,Ios,Xcode,尝试为NSManagedObject子类编写自定义描述方法,而不是在self.myvarname中打印该数据,它打印“myvarname”或打印self.userCount它打印“userCount” 遵循以下示例: 另外,为什么在xcode控制台中键入“po myroominstance.name”或“po myroominstance.usage”时会说找不到属性(给定下面的类) 这是我的班级: .h =================== #import <Foundation/Fo
.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
如果我在上面的NSlog行中断,顺便说一句,它打印出“房间名称是name”,然后在控制台中键入“po myRoom.name”,我会得到“name”。如果我键入“po myRoom.descr”,我会得到“descr”。其他人都没有完全正确的格式,但无论如何,他们找错了方向。您似乎从链接到的教程中复制了
-description
方法,而没有调整它以匹配您的类
您可以这样实现它:
- (NSString*) description
{
return [NSString stringWithFormat:@"<%@ %p> name %@, capacity %@, descr %@, usage %@", [self class], self, name, capacity, descr, usage];
}
-(NSString*)说明
{
返回[NSString stringWithFormat:@“名称%@,容量%@,描述%@,使用率%@”,[self class],自身,名称,容量,描述,使用率];
}
(无需在容量
上调用-intValue
,然后使用“%d”格式说明符。)
但是,这并不能解释为什么在调试会话期间或者在询问某个实例的描述时没有得到预期的结果。请编辑您的问题,并添加详细信息,说明您是如何要求描述的,以及您到底得到了什么。例如,您是否在代码中记录实例?如果是,则显示日志记录语句和输出。您是否在调试器中使用
po
?如果是,请显示实际命令和输出。请根据您的请求查看上面的更改。好的,那么问题出在哪里?您没有试图打印myRoom
对象本身,因此我们不希望使用-description
方法。您只是在打印myRoom
的特定属性。我怀疑它向你展示了这些属性的确切含义。也就是说,我假设myRoom
的name
属性实际上是“name”,而descr
属性实际上是“descr”。你在期待什么?
- (NSString*) description
{
return [NSString stringWithFormat:@"<%@ %p> name %@, capacity %@, descr %@, usage %@", [self class], self, name, capacity, descr, usage];
}