我是 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/