ios 編譯版本 最低版本 運行版本 動態連結程式庫

來源:互聯網
上載者:User

標籤:動態庫   返回   部署   ant   float   bad   void   center   app   

  if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) 運行環境判斷;

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 編譯器、開發環境支援;

部署環境支援;

 

UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter]

在低於庫版本的運行環境運行時,center傳回值為nil;

 

結論:

1)在對象或類符號不存在時,動態庫沒有任何存在,傳回值為nil;

2)當一個類的介面存在跨系統層級的函數存在時,因為類或對象存在,函數符號不存在,所以存在崩潰的情況。

 

 

- (void)registerRemoteNotification {

    if ([[UIDevice currentDevice].systemVersion floatValue] >= 10.0) {

#if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_10_0 // Xcode 8編譯會調用

        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];

        center.delegate = self;

        [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge | UNAuthorizationOptionSound | UNAuthorizationOptionAlert | UNAuthorizationOptionCarPlay) completionHandler:^(BOOL granted, NSError *_Nullable error) {

            if (!error) {

                NSLog(@"request authorization succeeded!");

            }

        }];

        

        [[UIApplication sharedApplication] registerForRemoteNotifications];

#endif

    } else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {

        UIUserNotificationType types = (UIUserNotificationTypeAlert | UIUserNotificationTypeSound | UIUserNotificationTypeBadge);

        UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];

        [[UIApplication sharedApplication] registerUserNotificationSettings:settings];

        [[UIApplication sharedApplication] registerForRemoteNotifications];

    } else {

        UIRemoteNotificationType apn_type = (UIRemoteNotificationType)(UIRemoteNotificationTypeAlert |

                                                                       UIRemoteNotificationTypeSound |

                                                                       UIRemoteNotificationTypeBadge);

        [[UIApplication sharedApplication] registerForRemoteNotificationTypes:apn_type];

    }

}

ios 編譯版本 最低版本 運行版本 動態連結程式庫

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.