gpt4 book ai didi

ios - 如何在 iOS 中为 NSOperation 设置唯一键值

转载 作者:行者123 更新时间:2023-12-01 16:03:40 24 4
gpt4 key购买 nike

在我的应用程序中,我尝试使用 AFNetworking 为 Web 服务交互实现 NSOperationQueue。我正在将一个 NSOperation 一个一个地添加到队列中。我想随时取消某个特定操作。为此,我想为操作设置一些唯一的键。那么,有什么办法可以实现吗?

最佳答案

创建一个 NSOperation子类并设置一个属性。

如果应用最小部署大于 iOS 8,那么你可以直接使用 .name属性(property)。

NSOperationQueue *queue = [NSOperationQueue mainQueue];
if (![[[queue operations] valueForKey:@"name"] containsObject:@"WS"])
{
NSBlockOperation *op = [NSBlockOperation blockOperationWithBlock:^{
//your task
}];
op.name = @"Unique id";
[queue addOperation:op];
}
else
{
NSIndexSet *indexSet = [[queue operations] indexesOfObjectsPassingTest:
^ BOOL(NSBlockOperation *obj, NSUInteger idx, BOOL *stop)
{
if ([obj.name isEqualToString:@"Unique id"])
{
return YES;
} else
{
return NO;
}
*stop = YES;
} ];

if (indexSet.firstIndex != NSNotFound)
{
NSBlockOperation *queryOpration = [[queue operations] objectAtIndex:indexSet.firstIndex];
[queryOpration cancel];
}
}

如果该应用不适用于 iOS 8 或更高版本,那么您可以创建 NSOperation 的子类并设置一个可以使用该值进行查询的身份:

@interface WSOperation: NSOperation
@property (nonatomic, strong) NSString* operationID;
@end

关于ios - 如何在 iOS 中为 NSOperation 设置唯一键值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28404039/

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