我有一個應用程序,我在其中調用webservice以檢索具有給定ID的JSON對象。 無論我在什麼類中,獲取對象的方法都是系統相同的,但成功塊將會不同(id est,處理部分) - 例如使用AFNetworking。目標C中的類繼承和自定義^塊執行C
我正在尋找正確的方式來實現只有一次的getter部分,但能夠自定義處理。
是下面這段代碼的好辦法:
-(void)getObjectWithId:(NSString*)id_{
NSString *ns1 = [NSString stringWithFormat:@"%@%@%@",HOSTNAME,API_DETAIL,id_];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:ns1]];
AFJSONRequestOperation *operation =[AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
//Here I want to do different processing task accordingly inheritance level // current class
DLog(@"Response : %@ \n Request : %@",response,request);
[self processObject:JSON];
} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
//Do failure stuff
}];
[operation start];
}
然後:
-(void)processObject:(id)JSON{
//Customize according to current class
}
因此,所有的子類將從getObjectWithId
繼承和擁有自己的執行processObject
我還應該考慮什麼?是一種正確的方式?
感謝,在較高的水平我的代碼審查後,我想我會在我的單身管理器,它是適當的(我認爲)包裝使用類一個getter方法,並將一個塊作爲參數傳遞給JSON。聽起來不錯 ! –