NSInvocation объект не получает выделенный iphone SDK - PullRequest
0 голосов
/ 11 июня 2010

Я делаю

        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 голосов
/ 11 июня 2010

Ваш @selector не соответствует сигнатуре вашего метода, поэтому он возвращает ноль. Кроме того, вы не можете использовать удобный конструктор для передачи нескольких параметров. Вам нужно будет создать NSInvocation и использовать initWithInvocation: для добавления параметров.

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

0 голосов
/ 11 июня 2010

Имя вашего селектора initWithParserId:type:, поэтому правильная строка


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