ios - NSIncationOperation init 从类方法调用实例方法返回 nil

标签 ios concurrency nsoperation nsoperationqueue

我正在尝试将 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/

相关文章:

ios - 用 JSON 响应中的空字符串替换 null 在 iOS 中不起作用

ios - 在 Info.plist 中指定 GPU

c# - 如何在线程之间传递锁?

ios - 执行相互调用的方法。全部在后台

iphone - 引用 NSOperation 实例并调用 -isFinished 是否安全?

iOS UI 测试以调整 SwiftUI 应用程序上的选择器值

ios - dispatch_async 和异步请求的问题

Scala Actor 阻塞当前线程

scala - Redis 与 Redisson 框架在 Scala 中的不可预测行为

ios - NSOperationQueue 队列中当前操作的限制数量是多少