iPadのVGA出力コネクタを使用してアプリのコンテンツを外部画面にミラーリングできるユニバーサルiPad/iPhoneアプリを作成しています。ただし、iPhoneにはこの機能はありません。次のコードが与えられた場合、
#ifdef UI_USER_INTERFACE_IDIOM
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
NSLog(@"this code should not execute on iphone");
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(screenInfoNotificationReceieved:)
name:UIScreenDidConnectNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(screenInfoNotificationReceieved:)
name:UIScreenDidDisconnectNotification
object:nil];
}
#endif
起動時に電話でこのエラーが発生します(iPadでは正常に動作します) "dyld:シンボルが見つかりません:_UIScreenDidConnectNotification"
おそらく、UIScreenDidConnectNotificationが3.13にまだ存在しないためです。実行時にこれを確認するにはどうすればよいですか?
UPDATED は、ipadインターフェイスをチェックするためのifdefステートメントを追加しましたが、同じ結果が得られます!
UPDATEDはNSLogステートメントを追加して、ifステートメント内のコードが呼び出されていないことを確認します。クラッシュは、他のコードが実行される前に発生するようです...