我正在使用CAEmitterLayer,但应用程序也应该支持iOS4.0,该怎么办?

时间:2012-06-02 06:49:09

标签: iphone ios

我是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版本吗?

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

1 个答案:

答案 0 :(得分:1)

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

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