2014-03-05 163 views
0

我已經重寫了我創建的對象的描述方法,很簡單。該對象是NSMutableURLRequest的子類。iOS描述方法不叫

- (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; 
} 

什麼鬼?

+0

''NSMutableURLRequest''或''沒有按NSURLRequest''班」沒有'' - (NSString *)說明'方法聲明。你正在訪問''NSObject''的方法'' - (NSString *)description''。見[this](https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#jumpTo_7) – damirstuhec

+0

顯示實例化對象的代碼。 – Jasarien

+1

正如Kevin在他的回答中所說的,你正在實例化一個NSMutableURLRequest,而不是你的子類。 – Jasarien

回答

1

你沒有你的子類的實例,你只是有一個正常的NSMutableURLRequest

0

NSMutableURLRequestNSURLRequest類沒有- (NSString *)description方法聲明。

您正在訪問NSObject的方法- (NSString *)description

this

你應該在你的自定義類聲明自己description方法,並調用它像:

NSString *myObjectDescription = [myCustomObject description];