2009-08-25 7 views
0

複数のView Controllerを持つiphoneアプリで作業しています。私は現在、以下のようにして、アプリデリゲートからint型の値を渡すことができるよ(私の代わりにフロートを使用したい!けど方法がわからない):iphoneデベロッパーのアプリケーションデリゲートとの間でフロートを渡す

アプリのdelegate.h

@interface { 
    NSInteger accumulatedTime; 
} 

@property (nonatomic) NSInteger accumulatedTime; 

@end 

アプリdelegate.m私の見解のcontroller.hで、その後

@implementation 

@synthesize accumulatedTime; 

@interface { 
    int secs2; 
} 

ビューcontroller.m

BetaTeam1AppDelegate *mainDelegate = (BetaTeam1AppDelegate *)[[UIApplication sharedApplication] delegate]; 

secs2 = mainDelegate.accumulatedTime ; 

私は、ビューコントローラの.hと.mファイルに浮かぶようにint型を変更するには、代わりに十分に簡単にフロートを使用したいが、どのようにアプリのデリゲートにコードに?

答えて

0

NSNumberは、CGFloatをカプセル化することができる。

NSNumber *accumulatedTime; 
CGFloat secs2 = [mainDelegate.accumulatedTime floatValue]; 
+0

ありがとうございました。 私はNSNUmber *アプリケーションdelegate.hの累積時間を使用します 私はまだプロパティを使用し合成しますか? は、NSIntegerの場合と同じ(非原子的、保持)または単なる(非原子的)プロパティですか? CGFloatを次のように使用しますか。 CGFloat secs2 = [mainDelegate.accumulatedTime floatValue]; および [mainDelegate.accumulatedTime floatValue] = CGFloat secs2 およびfloat secs2; secs2を宣言するかCGFloatするか; 申し訳ありません、私は非常に厚いです、私はCGFloat上のリンゴのドキュメントを読むが、それは尋ねる傷つけないだろうと思った。 –

1

だけfloataccumulatedTimeの種類を変更します。 floatおよびintはここでの違いはありません。どちらもC型であり、プロパティはC型を返すことができます。

これは、おそらくaccumulatedTimeNSTimeIntervalのタイプにするべきです。これは、Cocoaの時間ルーチンと一貫性があるためです。 NSTimeIntervalは一般にdoubleとして実装されています。

+0

もう一度助けてくれてありがとう、私はNSNumberとNSTimeIntervalについて読んでいくつもりです。 PS。私が得たベスト・レスポンスとレスポンスIdevフォーラムよりもはるかに優れています。 –

0

MVCテーマのModelオブジェクトのように、このグローバル情報を別の場所に配置することを検討してください。たとえそれがシングルトンであっても、App Delegateをこのように満たすよりも優れた設計です。

関連する問題