I will embellish :)
The airport is about 15 miles from the city. There are lots of BA flights as well as Easyjet, Ryan Air etc.
It is right on the beach - something like 10 miles of beaches in the city. They are beautifully clean (raked overnight), and have toilets, showers, lifeguards, and plenty of bars and restaurants. They also have sunbed hire, and volleyball nets/football goals. The beachfront hotels are approximately a 5 minute walk from the beach.
There are lots of historic places to visit. The old town, centred on Las Ramblas is amazing. You can visit the Cathedral, Gaudi and Picasso. There is also Catalan culture. There are also the type of attractions that appeal to locals such as the Aquarium and Zoo. A great day out is a visit to the Illa Fantasia waterpark.
The shops and restaurants are amazing. I didn't find the food to be great, but it was plentiful and always served by very lively waiters. My regret was not shopping enough. The prices were very good, and the selection very interesting.
We stayed in a 4* hotel by the beach at less than ?100 per room per night. Eating out was much cheaper than the UK. I have no idea about self-catering.
If you were to go to Barcelona, I would recommend getting a hotel near the beach, and then travelling into the city when you wanted. The public transport is excellent. We used both the bus and underground, and never really waited more that 5 minutes.