0

我正在使用下面的代码将多个值传递给 NSOperation。

我已经定义了一个 NSDictionary 但我无法在调用的方法中访问它(它总是返回 null)。

下面是我调用该方法的代码

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的方法,但是当我根据字典定义实际查看value1时,NSLog 始终打印为空。

我错过了什么吗?

肿瘤坏死因子

4

1 回答 1

2

正如方法名称initWithObjectsAndKeys所示,在您的情况下,@"key1"是值/对象并且@"value1"是键。此外,对象中没有stringValue方法NSString。所以,试试:

NSLog(@"value1: %@", [params objectForKey:@"value1"]);
于 2012-12-11T07:30:58.753 回答