As of iOS 8, the notification registration process changed and moved away from the user having to grant permission to just remote notifications.
You can now technically register for remote notifications without having to get permission from the user. What you do need permission for is the user notification settings (alerts, sounds and badges). These are now generic to both local and remote notifications making the other answers technically incorrect.
You request permission via the -[UIApplication registerUserNotificationSettings:]
method on UIApplication
and as per the documentation, you get a callback to the -[UIApplicationDelegate application: didRegisterUserNotificationSettings:]
delegate method.
In the header, there is a comment saying the following:
// This callback will be made upon calling -[UIApplication registerUserNotificationSettings:]. The settings the user has granted to the application will be passed in as the second argument.
This means that if the user did not grant permissions for notifications (both local and remote) then the second parameter won't contain any values.
-[UIApplication isRegisteredForRemoteNotifications]
will just tell you if the applicaiton has actually registered with Apple's push servers and has received a device token:
Return Value
YES if the app is registered for remote notifications and received its device token or NO if registration has not occurred, has failed, or has been denied by the user.
It's worth reading the UIApplication
documentation as it has all the info you need.
https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/#//apple_ref/occ/instm/UIApplication