You don't instantiate an app delegate yourself. Your Info.plist file tells which Nib file to load when the application runs on an iPhone, or on an iPad. And each Nib file says to make an object of the corresponding class. Therefore, the right app delegate class is automatically chosen, and you can access it by [[UIApplication sharedApplication] delegate].
In most cases, therefore, you need not worry about this problem. You can be sure that all methods in, say, the iPhone app delegate will run when running on an iPhone.
One case where you might care is when you are sending a message to the delegate or reading its properties from outside of the delegate class (Although this case is almost always not desirable).
In that case, to suppress compiler warnings, you may want to do something like this:
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
[(AppDelegate_iPad *)[[UIApplication sharedApplication] delegate] specificMessage];