没有调用iOS描述方法

时间:2014-03-05 16:23:08

标签: ios cocoa-touch cocoa

我已经覆盖了我创建的对象的描述方法,非常简单。该对象是NSMutableURLRequest的子类。

- (NSString *)description
{
    return [[NSString alloc] initWithData:self.HTTPBody encoding:NSUTF8StringEncoding];
}

我还将- (NSString *)description;放在.h

但是当我NSLog对象时它没有被调用。它不是NSManagedObject。如果我只调用myObject.description;,即使调试器也不会进入“描述”。我正在我的对象的实例上精确调用该方法,而不仅仅是NSMutableURLRequest

编辑: 我像这样实例化对象:

MYRequest *myRequest = [MYRequest requestWithFilter:myFilter];

NSLog(@"%@", myRequest);

这是工厂方法:

@interface MYRequest : NSMutableURLRequest
+ (instancetype)requestWithFilter:(NSString *)filter;


@implementation MYRequest
+ (instancetype)requestWithFilter:(NSString *)filter
{
    // some config
    MYRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:0 timeoutInterval:15];
    // some more config
    return request;
}

到底是什么?

2 个答案:

答案 0 :(得分:1)

您没有子类的实例,只有正常的NSMutableURLRequest

答案 1 :(得分:0)

NSMutableURLRequestNSURLRequest类未声明- (NSString *)description方法。

您正在访问NSObject方法- (NSString *)description

请参阅this

您应该在自定义类中声明您自己的 description方法,并将其命名为:

NSString *myObjectDescription = [myCustomObject description];