print(titleText) を print(self?.titleText) に変えたら "Capture 'self' was never used" は消えるので,単に Task { [self] in でキャプチャされている self が self: Self じゃなくて self: Self? になっているだけだと思いますよ.guard let self の方の self じゃなくて [weak self] の方の self が [self] でキャプチャされている感じですね.