2011-07-25 4 views
6

システム時間をミリ秒単位で取得しようとしています。そのために 私は宣言した: NSNumberとNSTimeInterval

NSNumber *createdTimeInMilliSec; //in class declaration 
を、私のインスタンスの機能の一つで、私がやって:

self.createdTimeInMilliSec= ([NSDate timeIntervalSinceReferenceDate]*1000); //ERROR: incompatible type for argument 1 of 'setCreatedTimeInMilliSec:' 

timeIntervalSinceReferenceDateNSTimeIntervalで返すので、どのようにNSNumberにそれを変換するの?または私が間違っていることは何ですか?

答えて

22

NSTimeIntervalは、以下のようtypedefedされて次のようにNSNumberの簡易コンストラクタnumberWithDouble:を使用しています。使用してNSNumberを作成するには

NSNumber *n = [NSNumber numberWithDouble:yourTimeIntervalValue]; 
+0

回答と説明のおかげで – XMarshall

+2

NSNumber * n = @(yourTimeIntervalValue);もうまく動作しています。 – rr1g0

1

NSTimeIntervalは、ダブルのtypedefです。 typedef double NSTimeInterval;

self.createdTimeInMilliSec= [NSNumber numberWithDouble:([NSDate timeIntervalSinceReferenceDate]*1000)]; 
1

NSTimeIntervalがダブルであるとして、あなたは

NSNumber *myNumber = [NSNumber numberWithDouble: myTimeInterval]; 
2

を行うことができ、私はそれが他の回答から明らかだかわからない - しかし、NSTimeIntervalがあります実際にはtypedef'ed doubleです。 [NSNumber numberWithDouble:timeInterval]またはさらに簡潔に@(timeInterval)を実行して、NSNumberを取得できます。