1

我是 iOS 新手。我想使用 CAEmitterLayer,它只支持 iOS 5,但我的应用程序应该支持 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 版本吗?

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

4

1 回答 1

1

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

if (NSClassFromString(@"CAEmitterLayer"))
{
// available
}
于 2012-06-02T07:03:50.870 回答