NSOperation子类内的属性发生了变化

时间:2016-04-01 01:55:46

标签: ios objective-c uitableview nsoperation

我在NSOperation的异步子类中调用 - NSURLSession,这样做的目的是能够在一个图像上加载多个图像并在表视图中反映它们。我的队列有下一个属性:

    @property(strong, nonatomic) DataSourse* sourse;
    @property(assign, nonatomic) NSInteger currentCell;
    @property(retain) NSURL *targetURL;
@property(strong, nonatomic) NSURLSession* defaultSession;
@property (strong, nonatomic) NSURLSessionDownloadTask* downloadTask;

每当用户选择下载哪个图像时 - 我创建新队列并使用NSURL和所选行的数量初始化它:

- (id)initWithURL:(NSURL*)url andRaw:(NSInteger)row
{
    if (![super init])
        return nil;
    [self setTargetURL:url];
    [self setCurrentCell:row];
    self.sourse = [DataSourse sharedManager];
    self.defaultSession = [self configureSession];
    self.isAsynchronous = YES;
    self.isExecuting = YES;
    return self;
}

问题是在下载过程中我想要更新表视图,为此我将下载的图像设置到 - DataSourse * sourse内的Dictionary中,即在我的应用程序单例中,为了获得正确的密钥,我需要一些选中的但是当我意识到,当NSURLSession开始下载数据时 - 我的队列中的所有属性由于某种原因变得像在第一次下载时一样。但NSURLSession已正确初始化并正确下载图像。

因此,表视图中的结果始终只更新一个单元格。 你能否建议这是NSOperation和NSURLSession的正常行为,还是我的错? 提前谢谢。

0 个答案:

没有答案