2017-08-23 7 views
-2

これが誤字や何かの理由があるのか​​どうかわかりませんが、以下は機能しません。IOS/Objective-c:dateWithTimeInterval問題

NSDateに秒を追加したいと思います。これを行う前に、日付がnullかnilかどうかをチェックし、そうであればエラーを避けるために現在の日付に設定します。それにもかかわらず、秒を追加または減算しようとすると、日付はnullを示しています。誰かが間違っていることを示唆できますか?

int secondsAdjustment = 1; 
NSDate* myLastViewed = item.lastviewed; 
    NSDate* myLastTouched = item.lasttouched; 


if ([myLastViewed isKindOfClass:[NSNull class] ]||myLastViewed==nil) { 
     NSLog(@"last viewed null"); 
     if ([myLastTouched isKindOfClass:[NSNull class]]||myLastTouched==nil) { 
      NSLog(@"last touched is also null so set both to now"); 
      myLastViewed = [NSDate date]; 
      myLastTouched = [NSDate date]; 
      NSLog(@"my LastViewed after setting to now is:%@",myLastViewed); 
      NSLog(@"my LastTouched after setting to now is:%@",myLastTouched); 
     } 
     else { 
      NSLog(@"last touched is not null so I will set viewed to it"); 
      myLastViewed=myLastTouched; 
     } 
    } 

if (myLastViewed!=nil&&![myLastViewed isKindOfClass:[NSNull class]]) { 
     _lastViewedAdjusted = [NSDate dateWithTimeInterval:secondsAdjustment sinceDate:myLastViewed]; 
NSLog(@"making adjustment"); //THIS Logs 
    } 
else { 
NSLog(@"something went wrong"); //THIS DOES NOT. Never get here 
} 
NSLog(@"lastViewedAdjusted%@",_lastViewedAdjusted);//THIS IS logging as NULL 
+1

を使用することができますsecondsAdjustmeht'?なぜあなたは 'NSNull'をチェックしていますか?問題のない行をすべて削除してください。このような単純な問題を示すにはあまりにも多くのコードです。 –

+0

[NSDate dateWithTimeInterval:secondsAdjustment sinceDate:myLastViewed]; TimeIntervalが期待されています。これは、通常はここで動作するdouble型のintです。 int secondsAdjustmeht = 1;ここでも後にでも間違っていると私は思っていますが、私はそれが問題ではないことができる 'double 'に変換される@solenoidの正誤を – solenoid

+0

というものと考えています。 –

答えて

1

ちょうど `この

NSDate *lastViewedAdjusted = [myLastViewed dateByAddingTimeInterval:1]; 
+0

それはトリックでした。ありがとう! – user6631314