11

NSOperationQueueを使用していて、NSOperationQueueに新しいNSOperationsを追加したいと思います。これは、私が持っているクラスのシングルトンインスタンスに存在するキューです。デリゲートを渡すことですべてを静的クラスに移動できれば、作業がはるかに簡単になります。

これが私のコードです-これはcellForRowAtIndexPath

 NSString *key = [NSString stringWithFormat:@"%@%@",cell.dataItem.ItemID, cell.dataItem.ManufacturerID];

        if (![self.imgOperationInQueue valueForKey:key]) {

            ImageOperation *imgOp = [[ImageOperation alloc] initWithItemID:cell.dataItem.ItemID withManufacturerID:cell.dataItem.ManufacturerID withReurnType:kThumbnail];
            imgOp.identifier = [NSString stringWithFormat:@"%i", cell.tag];
            imgOp.delegate = self;
            [[SharedFunctions sharedInstance] addImageOperationToQueue:imgOp];
            [imgOp release];

            // store these in the dictionary so we don;t queue up requests more than once
            [self.imgOperationInQueue setValue:cell.dataItem.ItemID forKey:key];
        }

デリゲートをパラメーターとして追加できれば、このコードをすべて共有シングルトンクラスに入れて、アプリのどこからでも呼び出すことができます。

NSNotificationを使用できると思いますが、ある種のブロックを使用できますか?

4

1 に答える 1

22

デリゲートを渡す適切なinitメソッドを作成するだけです。

- (id)initWithItemID:(NSString *)itemID
  withManufacturerID:(NSString *)manufacturerID
       withReurnType:(NSInteger)type
            delegate:(id<YourDelegate>)theDelegate
{
    self = [super init];
    if (self)
    {
        .... // Other assignments
        self.delegate = theDelegate;
    }

    return self;
}
于 2012-06-13T13:47:46.023 に答える