gpt4 book ai didi

objective-c - 我可以将委托(delegate)作为参数传递吗?

转载 作者:技术小花猫 更新时间:2023-10-29 10:44:47 25 4
gpt4 key购买 nike

我正在使用 NSOperationQueue,我想将新的 NSOperations 添加到 NSOperationQueue。它是一个队列,存在于我拥有的类的单例实例中。如果我可以通过传递委托(delegate)将所有内容移动到静态类中,事情就会变得容易得多。

现在这是我的代码,它位于 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];
}

如果我可以将委托(delegate)添加为参数,我可以将所有这些代码放入共享单例类中,并从我的应用程序中的任何位置调用它。

我想我可以使用 NSNotification - 或者我可以使用某种 block 吗?

最佳答案

只需创建传入委托(delegate)的适当初始化方法即可。

- (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;
}

关于objective-c - 我可以将委托(delegate)作为参数传递吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11015917/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com