我是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,但应用程序也应支持iOS4.0,怎么办?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10860432/

10-11 14:43