On page 93, we took a look at disposing unused subscriptions. I was playing around with the code and saw some interesting behaviour. Here’s the code where we subscribe to the photosViewController
’s PublishSubject
observable:
// from page 94
photosViewController.selectedPhotos
.subscribe(onNext: { [weak self] newImage in
guard let images = self?.images else { return }
images.value.append(newImage)
}, onDisposed: {
print("completed photo selection")
})
.addDisposableTo(photoViewController.bag)
When resource counting was enabled, it led to this output:
resources: 6
resources: 11
completed photo selection
resources: 11
completed photo selection
By adding to photoViewController
’s dispose bag, the subscription is now being disposed of correctly. This makes sense, but then I tried something else that gave me an interesting result; I removed the addDisposableTo
call from the code above. This capped the resources to 10
.
resources: 6
resources: 10
resources: 10
resources: 10
I’m no longer getting the onDisposed
print statements, but the resource count wasn’t increasing either. I was expecting resources to go up, what’s going on here?
Thanks in advance!