我正在尝试将 NSOperation 对象放入 NSOperationQueue 中。但我似乎误解了如何正确初始化 NSInitationOperation (一个似乎是为我的目的量身定制的子类,因为我想执行操作队列中的现有方法)。这是我正在尝试的:
OnlineServiceManager * sm = [[OnlineServiceManager alloc] initWithAsset:asset andViewController:viewController];
NSInvocationOperation * operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(pushAsset) object:sm];
[queue addOperation:operation];
此节在循环内运行,提供要在操作中推送的新 Assets 。当我调试这些行时,结果发现操作为零,表明找不到选择器。选择器是此类中的实例方法,具有以下签名:
- (void)pushAsset
该节也在类方法中运行 - 我的目的是调用该类并指示它推送所有 Assets 。
搜索了我能找到的与此案例相关的所有文档后,我不太明白我做错了什么。
最佳答案
self 是类对象,push asset 是一个实例方法,这可能是问题所在。如果将推送 Assets 更改为类方法会发生什么?
关于ios - NSIncationOperation init 从类方法调用实例方法返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11043804/