Как мога да избегна добавянето на NSWindowWillEnterFullScreenNotification във версия на ОС преди 10.7, тъй като е достъпна само в OS 10.7 или по-нова и искам да използвам това известие в по-горе 10.7, но приложението ми се срина, ако го стартирам на по-стара версия на ОС. Проверих регистъра на сривовете и той казваше, че символът не е намерен NSWindowWillEnterFullScreenNotification
В момента проверявам версията на операционната система, използвайки това
if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_5) {
/* On a 10.5.x or earlier system */
}
else if (floor(NSAppKitVersionNumber) <= NSAppKitVersionNumber10_6) {
/* On a 10.6 - 10.6.x system */
} else {
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(willEnterFull:)
name:NSWindowWillEnterFullScreenNotification
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(didExitFull:)
name:NSWindowDidExitFullScreenNotification
object:nil];
}
Но приложението се срина в предишна версия веднага щом се стартира.
Ето регистъра на сривовете, въпреки че промених името на приложението на XYZ в регистъра поради NDA
Process: XYZ [53319]
Path: /Applications/XYZ.app/Contents/MacOS/XYZ
Identifier: com.XYZ.XYZ
Version: 2.0.5 (2.0.5)
Code Type: X86 (Native)
Parent Process: launchd [224]
Date/Time: 2012-10-28 07:44:11.717 -0500
OS Version: Mac OS X 10.6.8 (10K549)
Report Version: 6
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000002, 0x0000000000000000
Crashed Thread: 0
Dyld Error Message:
Symbol not found: _NSWindowDidExitFullScreenNotification
Referenced from: /Applications/XYZ.app/Contents/MacOS/XYZ
Expected in: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
in /Applications/XYZ.app/Contents/MacOS/XYZ