2010年9月13日 星期一

EAGLView 的 iPad 處理

在支援了 iPhone 4 的高清圖像之後,iPad 版本會導致死機,原因是 iPad 目前最新的只是 3.2 版本;而我用上的功能則是 iOS 4.0 才有。在網上找到的方法,不外乎用 respondsToSelector 去檢查是否有 scale 這個 selector,從而斷定是否為 iPad。這個方法可行,但用在我的 EAGLView 內會造成死機。原來是 contentScaleFactor 惹的禍。這個也是 iOS 4.0 的東東,所以也要用 respondsToSelector 檢查過才能使用。
 //  Set UIView's content scale factor if support
if ([[UIScreen mainScreen] respondsToSelector:NSSelectorFromString(@"scale")]) {
if ([self respondsToSelector:NSSelectorFromString(@"contentScaleFactor")]) {
self.contentScaleFactor = [[UIScreen mainScreen] scale];
}
}