我正在製作使用HealthKit的應用程序。該應用程序不能在iPad上工作,因此我的viewDidLoad
方法包含一個if/then/else語句以向iPad用戶顯示警報。這是我的代碼:無法將設備檢測爲iPad
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone && SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0") && [HKHealthStore isHealthDataAvailable] == 1) {
...
}
else {
UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"Whoops!" message:@"Looks like your device doesn't support HealthKit :(" preferredStyle:UIAlertControllerStyleAlert];
[self presentViewController:alertController animated:1 completion:^(){
NSLog(@"Showed error alert because of unsupported device.");
}];
}
的SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")
位來自this gist。
時,該設備是一臺iPad,是不是運行iOS 8.0或更高版本,或者只是(某些其他原因)的UIAlertController應該顯示不能使用HealthKit。這一切都很好,但是當我在運行iOS 8的iPad 2模擬器上運行應用程序時,該應用程序將正常啓動並且不顯示警報。爲了記錄,我知道警報沒有按鈕,但我不希望它消失。它只能顯示在iPad或iOS 8以下的設備上,因此在顯示時不需要消失。
那麼,爲什麼我的應用程序沒有顯示在iPad上的警報視圖?控制檯顯示沒有錯誤。
編輯:無按鈕通知將不會在最終的產品,只是在測試中。然而,這一點仍然存在,因爲警報仍應該顯示出來。
蘋果不會讓你這樣做。僅限iPhone的應用程序必須在iPad上按原樣運行。您當然可以讓應用程序需要某些東西,但總的來說,您嘗試阻止在iPad上運行將不起作用,如果它確實不會被接受。 – rmaddy 2014-10-16 21:42:50
@rmaddy我知道,這只是爲了在開發過程中測試系統。無論蘋果是否喜歡它,這個_應該在模擬器中工作,但它不會。 – 2014-10-16 21:46:49
@rmaddy可能應該在問題中提到這一點。我剛剛編輯了這個問題以說明問題。 – 2014-10-16 21:48:21