これはおそらく私に多くの反対票を与えるでしょうが、まあ。私はAS3のバックグラウンドから来ていることを心に留めておいてください。
そうです、私は何かが植えられた/建設が始まってからどれくらいの時間が経過したかの表示をコーディングしている最中です。timeToCompletion値と、timeSincePlanting値が次のように表示されます。
//get seconds since planting/construction start
NSDate *now = [NSDate date];
NSTimeInterval secondsSincePlantingInterval = [now timeIntervalSinceDate:plantingDate];
//convert to Number
NSNumber *secondsSincePlanting = [NSNumber numberWithDouble:secondsSincePlantingInterval];
//get template object
NSDictionary *templateObject = [self getTemplate:kingdomObject];
//get how long I should take (in seconds)
NSNumber *timeToCompletion = [templateObject objectForKey:@"constructionTime"];
そして、私がこれをやろうとするまで、すべてが泳いでいました...
NSNumber *timeLeft = [NSNumber numberWithInt:0];
timeLeft = timeToCompletion - secondsSincePlanting;
AS3から来るのは私の自然な本能ですが、今ではそれがおそらくポインターからポインターを減算しようとしているだけだと気づきましたか?
最初の質問は、2つのNSNumberでそれをどのように行うことができるかということです。それが不可能で、NSDecimalNumberを使用する必要がある場合は、すべてをNSDecimalNumberに変換して、そのように減算しますか?唯一のことは、秒を表すので整数が必要なだけで、小数点以下の桁数などを入力する必要はありません。