NSDictionary, переданный NSOperation, является нулем в вызванном методе

Я использую код ниже, чтобы передать несколько значений в NSOperation.

Я определил NSDictionary, но я не могу получить к нему доступ (он всегда возвращает ноль) в вызываемом методе.

Ниже мой код для вызова метода

NSDictionary *params = [[NSDictionary alloc] initWithObjectsAndKeys:
@"key1", @"value1",
@"key2", @"value2",
nil];

NSOperationQueue *queue = [NSOperationQueue new];
NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(method:) object:params];
[queue addOperation:operation];

Вот мое определение метода

- (void) method: (NSDictionary *) params {
     NSLog(@"value1: %@", [[params objectForKey:@"key1"] stringValue]);
}

Вызывается метод с именем method, но NSLog печатает всегда null, когда я на самом деле смотрю, чтобы увидеть значение1 согласно определению моего словаря.

Я что-то пропустил?

Tnx

1 ответ

Как имя метода initWithObjectsAndKeys указывает, в вашем случае, @"key1" это значение / объект и @"value1" это ключ. Также нет stringValue метод в NSString объект. Так что постарайтесь:

NSLog(@"value1: %@", [params objectForKey:@"value1"]);
Другие вопросы по тегам