If you have created a custom settings using the standard root.plist for the iphone App. There is a way to determine when the user changes those settings by listening to NSUSerDefaultsDidChange-notifications.
Whenever the NSUserDefaults changes, defaultsChanged will be called. However, don't forget to call [[NSNotificationCenter defaultCenter] removeObserver:self]; when you want to stop listening for these notifications.
And there is no real way to determine which settings were changed, but if you look for something specific, try storing the old version when the notifications gets run, then check against that setting next time.
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(defaultsChanged) name:NSUserDefaultsDidChangeNotification object:nil];
Whenever the NSUserDefaults changes, defaultsChanged will be called. However, don't forget to call [[NSNotificationCenter defaultCenter] removeObserver:self]; when you want to stop listening for these notifications.
And there is no real way to determine which settings were changed, but if you look for something specific, try storing the old version when the notifications gets run, then check against that setting next time.