0

我需要将我的操作的索引添加到 NSOperationQueue,并希望它像这样工作:

    @interface MyOperation : NSObject {
        NSInteger index;
        /* Do Something */
}

下面将设置 myOperation 的索引成员作为它在 operationQueue 中的位置。

[operationQueue addOperation:myOperation]

编辑:实际上我使用 NSMutableDictionary 将操作的索引存储为对象,并将操作的名称存储为键。像这样:

    NSNumber* indexOfOperationInQueue;
    NSMutableDictionary *dictionary;
    ...
    -(void) AddOperation {
        indexOfOperationInQueue = [NSNumber numberWithInt:value + 1];
        [dictionary setObject:indexOfOperationInQueue forKey:@"operation0"];
    }

操作被取消,crosspond 键和对象被删除。

4

2 回答 2

0

您可以将使用 NSOperationQueue 创建的每个操作添加到 NSMutableArray,然后访问该数组中的操作。

于 2012-07-24T08:14:25.077 回答
0

您为队列中的操作分配索引的问题是,当队列被清除时,它们的索引会改变。为什么不给它们分配序数值。

为您的操作添加一个超类,为下一个索引添加一个类变量,以及一个类似的方法

- (void) addToOperationQueue:(NSOperationQueue)queue;

它从类变量中设置索引值。

于 2012-07-24T08:59:37.210 回答