我正在使用下面的代码将多个值传递给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打印始终为null。
我错过了什么吗?
TNX
答案 0 :(得分:2)
正如方法名称initWithObjectsAndKeys
所示,在您的情况下,@"key1"
是值/对象,而@"value1"
是关键。此外,stringValue
对象中没有NSString
方法。所以,试试:
NSLog(@"value1: %@", [params objectForKey:@"value1"]);