iphone - 我用的是CAEmitterLayer,但是app应该也支持iOS4.0,怎么办?

标签 iphone ios

我是 iOS 新手。我想使用仅 iOS 5 支持的 CAEmitterLayer,但我的应用程序应支持 iOS 4 及更高版本。我正在使用 [UIDevice currentDevice].systemVersion 检查版本,但它崩溃了。

代码如下:

@class CAEmitterLayer;

@interface FireView : UIView

@property (strong) CAEmitterLayer *fireEmitter;
@property (strong) CAEmitterLayer *smokeEmitter;

- (void) setFireAmount:(float)zeroToOne;
@end

//如果 iOS>=5.0 创建 FireView

if ([[UIDevice currentDevice].systemVersion doubleValue] >=5.0) {
            FireView *fireView = [[[FireView alloc] initWithFrame:CGRectMake(0, 95, 100, 280)] autorelease];
            [self.view addSubview:fireView];
}

问题是它在我创建 FireView 之前崩溃了。

错误:dyld:找不到符号:_OBJC_CLASS_$_CAEmitterCell

即使我不包含 FireView.h 文件,仍然会崩溃。 我应该同时创建 iOS4 和 iOS5 版本吗?

你能给我一些建议吗? 请帮忙。非常感谢。

最佳答案

您可以通过以下方式检查 CAEmitterLayer 类是否在当前设备的 iOS 版本上可用:

if (NSClassFromString(@"CAEmitterLayer"))
{
// available
}

关于iphone - 我用的是CAEmitterLayer,但是app应该也支持iOS4.0,怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10860432/

相关文章:

ios - Core Data - 检测数据库存储是否已经创建

ios - prepareForSegue 将数据发送到容器 View 中的 TableView

ios - 以编程方式访问 iTunes 商店?

iphone - 适用于 iPhone/iPod Touch 的 HTML5 中的 Coverflow

iphone - 在长按手势识别器上获取错误的 UIButton 标签

iphone - 比较 iPhone 中的两个 NSMutableArray 索引

ios - 将仅限 iphone 的应用程序提交到应用程序商店?

ios - 在 iPad 浏览器中单击时强制在特定应用程序中打开 PDF 链接?

ios - 在 Alamofire 4.0、iOS 10 和 Swift 3 中使用 Google Places API

iphone - 获取 UITableview 中的 Cell 位置