Make smart localization choices according to your audience, and allow users the choice if they want to live with your app even if it's not in their locale.
In theory, the best practice is to localize your apps for your audience.
Of course, in theory your audience could be anyone in the world. But you are not likely going to have your app localized for the 732+ locales that iOS recognizes (as of iOS 9, probably more now).
So practically speaking, if your app targets a second audience (for instance, France is the world's largest tourist destination and its cuisine is one of its attractions among world travellers) it makes sense to localize for those audiences. In this example, Germany and the UK are the largest sources of visitors to France, so you may choose to localize to German and British English. You probably won't localize to Urdu.
However, there is nothing preventing a Paktistani Francophile from downloading your app when they land in Charles de Gaulle and, with whatever level of knowledge of French they have, make use of the app. If they find the experience too discordant they may stop using it, but that will be their choice. From your perspective, you are at least leaving the option open to users.
Also note that, if I understand your example correctly, this type of app will always be a little discordant in terms of localization when you think beyond UI and message and into actual content. You will never be able to get every restaurant in all of France to provide you a description, let alone a menu, aptly translated into English and German. Reviews people leave will be in their native language, most likely. Machine translation services like Google translate will get you some of the way (we see it on sites like Trip Advisor) but it will never be perfect.
It depends on your app's users and how it is used.
What I can advise comes from my own experience as a user. As a bi-lingual user (Hebrew and English) I find myself in need for the ability to set an app's locale. My system is always in English since Hebrew doesn't fare well with technical jargon. Some of my apps, on the other hand, are in Hebrew - and these are apps that show local data (much like the restaurant example you have).
Moreover, it also depends on who uses my mobile. I'd I give it to my wife, I prefer changing settings of English apps to Hebrew since she's more fluent in that.
So bottom line: i can manage without the ability to change locale, but it can be a great feature for a specific type of apps.