Of the three, Barcelona is the best. Unless you dont want to deal with any language issues then London - they almost talk English good there...
But for food, a great atmosphere, and good weather go to Spain.