1

我需要重写该description方法以返回对象的内部状态(换句话说,将所有值转储到单行文本中)。

在我的模型(类)中,我有

家庭作业.h

#import <Foundation/Foundation.h>

@interface Homework : NSObject

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

@end

家庭作业.m

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

我在我的ViewController

@property (nonatomic, strong) Homework *homeworkAssignment;

我试着像这样打印它

  NSLog(self.homeworkAssignment.description);

但它似乎不起作用,输出打印出一个逗号“,”。我格式NSLog错误吗?我是否正确覆盖了该方法?这是我的第一个应用程序(除了“Hello World”)。

4

2 回答 2

1

您的代码工作正常,您甚至可以像这样使用 NSLog:

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

返回

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

尝试为您的 className 和 assignmentTitle 分配值,这样它就不会返回 null :)

于 2013-09-29T21:59:09.547 回答
0

就实现description和日志记录而言,代码看起来都是正确的。由于输出仅显示逗号,这意味着您的两个属性都包含空字符串。如果它们是nil字符串格式,它们将显示为(null).

nil指针和对空字符串 ( @"")的引用是有区别的。

于 2013-09-29T22:11:08.417 回答