1

私は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の両方のバージョンを作成する必要がありますか?

アドバイスをいただけますか?助けてください。どうもありがとうございました。

4

1 に答える 1

1

現在のデバイスの iOS バージョンで CAEmitterLayer クラスが利用可能かどうかを確認するには、次の方法があります。

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