application: didReceiveRemoteNotification: fetchCompletionHandler:
is different from
application: didReceiveRemoteNotification:
I'm not sure if I understand your question.
Do you want to differentiate between a silent push notification background fetch and a noisy push notification? You can simply check whether the push notification dictionary contains the "content-available" key: [[userInfo objectForKey:@"aps"] objectForKey:@"content-available"]
If it does, then it should be a silent push. If not, it was a normal push.
Do you want to know if that background fetch method is called when the application receives a notification and it is in suspended/not running? If so, you can do the following:
Put this in any method you want to see whether/when that method is invoked:
DDLogDebug(@"%@ - %@",NSStringFromSelector(_cmd),NSStringFromClass([self class]));
This will print the class and the method to the log file.
Examine the log file after sending yourself a push notification to your background-fetch enabled app, and see if any of the methods get called by looking at your log file.
If you have set up your app correctly for background fetch, the method application: didReceiveRemoteNotification: fetchCompletionHandler:
will be called even when the app is backgrounded/not running if you receive a push notification (silent push or not).