【发布时间】:2014-03-05 16:23:07
【问题描述】:
我已经覆盖了我创建的对象的描述方法,非常简单。此对象是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;
}
什么鬼?
【问题讨论】:
-
NSMutableURLRequest或NSURLRequest类没有声明- (NSString *)description方法。您正在访问NSObject的方法- (NSString *)description。见this -
显示实例化对象的代码。
-
正如凯文在他的回答中所说,您正在实例化 NSMutableURLRequest,而不是您的子类。
-
@Jasarien 哦,是的,显然,明白了!谢谢
标签: ios cocoa-touch cocoa