【问题标题】:NSDictionary passed to NSOperation is null inside the invoked method传递给 NSOperation 的 NSDictionary 在调用的方法中为 null
【发布时间】:2012-11-22 22:55:53
【问题描述】:

我正在使用下面的代码将多个值传递给 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

【问题讨论】:

    标签: objective-c nsoperation nsoperationqueue nsinvocationoperation


    【解决方案1】:

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

    NSLog(@"value1: %@", [params objectForKey:@"value1"]);
    

    【讨论】:

      猜你喜欢
      • 2015-12-23
      • 1970-01-01
      • 2010-10-17
      • 1970-01-01
      • 1970-01-01
      • 2014-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多