Oleksandr Matrosov
Oleksandr Matrosov

Reputation: 27133

NSDateFormatter return (null) string when NSDate is nil

I use date formatter to get new string, but in some cases startDate can be nil.

resultDate = [NSString stringWithFormat:@"%@", [formatter stringFromDate:startDate]];

And then resultDate get (null) string (NSTaggedPointerString), but I expect to get just nil in case if formatter get nil as a parameter of date.

Upvotes: 0

Views: 238

Answers (2)

dan
dan

Reputation: 9825

The currently accepted answer isn't actually right.

stringFromDate does return nil when you pass it a nil date.

The reason your string is "(null)" is because [NSString stringWithFormat:"%@", nil] returns the string "(null)"

Upvotes: 2

JAL
JAL

Reputation: 42449

The stringFromDate instance method on NSDateFormatter is expecting a (nonnull NSDate *) and returns NSString * _Nonnull.

The _Nonnull keyword specifies that stringFromDate will always return an NSString * and never return nil, so on a nil date stringFromDate will return the string "null".

Upvotes: 1

Related Questions