在向NSOperationQueue添加内容时如何获取索引?

时间:2012-07-24 07:41:11

标签: ios nsoperationqueue

我需要将我的操作索引添加到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键和对象已删除。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

为队列中的操作分配索引的问题是,在清除队列时,它们的索引会发生变化。你为什么不直接为它们分配序数值。

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

的方法
- (void) addToOperationQueue:(NSOperationQueue)queue;

从类变量中设置索引值。