2011-07-16 74 views
0

我的應用程序是一個iphone應用程序不是一個通用的應用程序。我正在實現uiimagepickercontroller它在iphone中工作正常。但我們的客戶端測試我的應用程序在iPad上應用程序將crash.I找出問題'在iPad上,UIImagePickerController必須通過UIPopoverController」通過ipad UIImagePickerController問題?


我檢查裝置的NSString *設備類型= [的UIDevice currentDevice] .MODEL;

(在通用的應用程序此代碼工作) 實施UIPopoverController只有iPad的。但即使我更改爲iPad模擬器,deviceType始終顯示'iPhone'。是否可以在iphone Build中解決此問題?

回答

0

我做的iPad爲單獨解決這個issue.because我不能讓一個設備在iPhone應用程序中輸入iPad。

2

您應該使用UI_USER_INTERFACE_IDIOM宏來檢查設備。

if (UIUserInterfaceIdiomPad == UI_USER_INTERFACE_IDIOM()) 
{ 
    // your code 
} 

這裏不是正確的選擇。

0

參考的UIDeviceuserInterfaceIdiom財產

-1

像埃裏卡喪盾說,您可以訪問設備的字符串:

- (NSString *) getSysInfoByName:(char *)typeSpecifier 
{ 
    size_t size; 
    sysctlbyname(typeSpecifier, NULL, &size, NULL, 0); 
    char *answer = malloc(size); 
    sysctlbyname(typeSpecifier, answer, &size, NULL, 0); 
    NSString *results = [NSString stringWithCString:answer encoding: NSUTF8StringEncoding]; 
    free(answer); 
    return results; 
} 
+0

有可用的高級類和函數可以確定正在運行的設備類型應用程序。不需要依賴低級API,這可能會導致未來的兼容性和其他問題。 – Andriy

+0

你說得對,沒有必要依靠低級別的API來確定設備類型,但我找不到確定硬件型號名稱的資源。 – Mat