NSInvocation对象没有分配iphone sdk

时间:2010-06-11 13:05:05

标签: iphone nsinvocation

我在做

        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!!!"); 

}

任何人都可以指出我哪里出错了。

提前完成。

2 个答案:

答案 0 :(得分:0)

您的选择器名称为initWithParserId:type:,因此正确的行是


_operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(initParsersetId:type:) object:paramObj];

答案 1 :(得分:0)

您的@selector与您的方法签名不符,这就是为什么它返回nil。此外,您不能使用便捷构造函数来传递多个参数。您必须创建NSInvocation并使用initWithInvocation:添加参数。

http://theocacao.com/document.page/264