我在做
NSString *_type_ = @"report";
NSNumber *_id_ = [NSNumber numberWithInt:report.reportId];
NSDictionary *paramObj = [NSDictionary dictionaryWithObjectsAndKeys:
_id_, @"bla1", _type_, @"bla2",nil];
_operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(initParsersetId:) object:paramObj];
但即使处理完这一行,我的_operation对象仍为零。
这里的选择器实际上是我正在写的一个函数,如:
-(void)initParsersetId:(NSInteger)_id_ type:(NSString *)_type_
{
NSString *urlStr = [NSString stringWithFormat:@"apimediadetails?id=624&type=report"];
NSString *finalURLstr = [urlStr stringByAppendingString:URL];
NSURL *url = [[NSURL alloc] initWithString:finalURLstr];
NSXMLParser *xmlParser = [[NSXMLParser alloc] initWithContentsOfURL:url];
//Initialize the delegate.
DetailedViewObject *parser = [[DetailedViewObject alloc] initDetailedViewObject];
//Set delegate
[xmlParser setDelegate:parser];
//Start parsing the XML file.
BOOL success = [xmlParser parse];
if(success)
NSLog(@"No Errors");
else
NSLog(@"Error Error Error!!!");
}
任何人都可以指出我哪里出错了。
提前完成。
答案 0 :(得分:0)
您的选择器名称为initWithParserId:type:
,因此正确的行是
_operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(initParsersetId:type:) object:paramObj];
答案 1 :(得分:0)
您的@selector
与您的方法签名不符,这就是为什么它返回nil。此外,您不能使用便捷构造函数来传递多个参数。您必须创建NSInvocation
并使用initWithInvocation:
添加参数。