Maybe my brain isn't working, but I just can't get this simple concept of UpdateScore. I'm hoping someone can shed light on this! I understand that UpdateScore only updates a score if both the user name and device ID are the same. Easy enough. Here's where I'm lost, though: since you need a user name (and of course want to ask for one to make things personal), how do you avoid prompting to enter what appears to be a high score (in the top 100 let's say) when the person already has a higher score posted and in fact "posting" this using UpdateScore will not actually do anything? You can't simply cache the high score locally because it might be someone else playing or the user might want to enter another name this time.
The only logical solution I have to this is to prompt for the name BEFORE the game starts, but this is obviously silly. It seems many developers are using UpdateScore (just from the number of enable-Ranking requests I see). So, what are you doing about this?
I suppose all high scores for all local users could be cached locally with NSUserDefaults/NSCoding or written sequentially to a file and then when the name is typed (or just the same as last game), the app could disable the submit button and put a message up instead explaining the situation...