我正在尝试构建一个测试 iOS 应用程序来解析来自 eBay 的 API 的 JSON,但我在将响应转发给委托(delegate)时遇到了问题。对于我的 ItemCommunicator 实现中的 fetchingItemsFailedWithError
和 receivedItemsJSON
方法,我都收到警告 No known instance method for selector
错误。
XYZItemCommunicator.m:
#import "XYZItemCommunicator.h"
#import "XYZItemCommunicatorDelegate.h"
@implementation XYZItemCommunicator
- (void)searchItems
{
NSString *urlAsString = [NSString stringWithFormat:@"http://svcs.ebay.com/services/search/FindingService/v1?SECURITY-APPNAME=**************&OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.12.0&RESPONSE-DATA-FORMAT=JSON&callback=_cb_findItemsByKeywords&REST-PAYLOAD&sortOrder=PricePlusShippingLowest&paginationInput.entriesPerPage=7&outputSelector=AspectHistogram&itemFilter(0).name=Condition&itemFilter(0).value(0)=New&itemFilter(1).name=MaxPrice&itemFilter(1).value=450.00&itemFilter(1).paramName=Currency&itemFilter(1).paramValue=USD&itemFilter(2).name=MinPrice&itemFilter(2).value=350.00&itemFilter(2).paramName=Currency&itemFilter(2).paramValue=USD&itemFilter(3).name=ListingType&itemFilter(3).value=FixedPrice&keywords=Moto+x+16gb+unlocked"];
NSURL *url = [[NSURL alloc] initWithString:urlAsString];
NSLog(@"%@", urlAsString);
[NSURLConnection sendAsynchronousRequest:[[NSURLRequest alloc] initWithURL:url] queue:[[NSOperationQueue alloc] init] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) {
if (error) {
[self.delegate fetchingItemsFailedWithError:error];
} else {
[self.delegate receivedItemsJSON:data];
}
}];
}
@end
XYZItemCommunicator.h:
#import <Foundation/Foundation.h>
@protocol ItemCommunicatorDelegate;
@interface XYZItemCommunicator : NSObject
@property (weak, nonatomic) id<ItemCommunicatorDelegate> delegate;
@end
XYZItemCommunicatorDelegate.h:
#import <Foundation/Foundation.h>
@protocol XYZItemCommunicatorDelegate <NSObject>
- (void)receivedItemsJSON:(NSData *)objectNotation;
- (void)fetchingItemsFailedWithError:(NSError *)error;
@end
最佳答案
检查您的协议(protocol)名称。你从
开始ItemCommunicatorDelegate
并更改为
XYZItemCommunicatorDelegate
关于ios - 选择器没有已知的实例方法 'receivedItemsJSON',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22210963/