So, I've been with this guy for around 6 months, and throughout the relationship he's been very hot and cold. He's amazing at times, and I know he truly loves me, and I love him and I really want it to work out, but he will just ignore my messages sometimes, and go all cold and ice out and block me. When he blocks me, it's usually only a couple of hours. He does always apologise afterwards. He suffers from depression, and he's been very hurt from previous relationships, so tells me from time to time that he doesn't think he deserves me, and when he's cold he hates it and feels bad because I don't deserve that behaviour, and in his words 'could find someone better'. I do truly love him, when he's cold it's emotionally draining for me though and I'm sensitive, so I get hurt. Should I leave him or should I stay? I really do want to spend my entire life with him, he talks about marrying me all the time, I'm just quite exhausted from being iced out, especially when I'm quite loving. When he have fights, he prefers not to talk about it and will tell me to move on, I'm the type of person who prefers communicating and talking about it. He's 'broken up' with me a couple of times, but comes back shortly after because he says he needs me.
when he apologises, I go all soft, how can I be firm and end it?