【问题标题】:Putting isCancelled Property in an NSOperationQueue [duplicate]将 isCancelled 属性放入 NSOperationQueue [重复]
【发布时间】:2013-05-13 07:51:02
【问题描述】:

所以,我正在使用 NSOperationQueue 的 addOperationWithBlock^{} 方法,我想在操作代码中的各个点上进行细粒度的 isCancelled 属性检查。如何获取将在此块中运行的操作的实例?

例如,这是我的代码sn-p:

[operationQueueInstance addOperationWithBlock:^{
    if (!???.isCancelled){
        NSlog(@"Instruction 1");
    }
    if (!???.isCancelled){
        NSlog(@"Instruction 2");
    }

    NSlog(@"Instruction 3");
 }];

如何获取此块将运行的操作实例,以便我可以评估 isCancelled 属性以获取指令?

TIA

【问题讨论】:

    标签: iphone objective-c ipad cocoa-touch cocoa


    【解决方案1】:

    来自 Apple 文档:

    您不应该尝试获取对新创建的引用 操作对象或判断其类型信息。

    您可以实例化 NSBlockOperation 并将其分配给一个变量以保留显式引用。

    addOperationWithBlock 似乎是您不需要引用操作对象时的快捷方式。

    确保使用__block 存储限定符标记您的块操作以避免保留循环。

    【讨论】:

    • 换句话说,您可能想要创建一个 NSOperation 子类来完成这项工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-11
    • 1970-01-01
    • 2015-11-15
    • 2020-02-25
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多