mirror of
https://github.com/gnustep/libs-base.git
synced 2025-04-22 16:33:29 +00:00
Implement add and subtract methods
This commit is contained in:
parent
1b8d5562a1
commit
e960b1be80
2 changed files with 25 additions and 5 deletions
|
@ -20,8 +20,6 @@ NSAppleEventDescriptor.h
|
|||
NSAppleEventManager.h
|
||||
NSBackgroundActivityScheduler.h
|
||||
NSDateComponentsFormatter.h
|
||||
NSDateIntervalFormatter.h
|
||||
NSDateInterval.h
|
||||
NSExtensionContext.h
|
||||
NSExtensionItem.h
|
||||
NSExtensionRequestHandling.h
|
||||
|
|
|
@ -61,15 +61,21 @@
|
|||
// Conversion
|
||||
- (BOOL) canBeConvertedToUnit: (NSUnit *)unit
|
||||
{
|
||||
return [unit isKindOfClass: [_unit class]];
|
||||
return ([unit isKindOfClass: [_unit class]] &&
|
||||
[unit respondsToSelector: @selector(converter)]);
|
||||
}
|
||||
|
||||
- (NSMeasurement *)measurementByConvertingToUnit:(NSUnit *)unit
|
||||
{
|
||||
NSMeasurement *result = nil;
|
||||
double val = 0.0;
|
||||
if([self canBeConvertedToUnit: unit])
|
||||
{
|
||||
// Do conversion...
|
||||
NSUnitConverter *c = [(NSDimension *)unit converter];
|
||||
val = [c baseUnitValueFromValue: _doubleValue];
|
||||
result = [[NSMeasurement alloc] initWithDoubleValue: val unit: unit];
|
||||
AUTORELEASE(result);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -82,12 +88,28 @@
|
|||
// Operating
|
||||
- (NSMeasurement *)measurementByAddingMeasurement:(NSMeasurement *)measurement
|
||||
{
|
||||
return nil;
|
||||
NSMeasurement *newMeasurement = [measurement measurementByConvertingToUnit: _unit];
|
||||
NSMeasurement *result = nil;
|
||||
double v = 0.0;
|
||||
|
||||
v = _doubleValue + [newMeasurement doubleValue];
|
||||
result = [[NSMeasurement alloc] initWithDoubleValue: v unit: _unit];
|
||||
AUTORELEASE(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
- (NSMeasurement *)measurementBySubtractingMeasurement:(NSMeasurement *)measurement
|
||||
{
|
||||
return nil;
|
||||
NSMeasurement *newMeasurement = [measurement measurementByConvertingToUnit: _unit];
|
||||
NSMeasurement *result = nil;
|
||||
double v = 0.0;
|
||||
|
||||
v = _doubleValue + [newMeasurement doubleValue];
|
||||
result = [[NSMeasurement alloc] initWithDoubleValue: v unit: _unit];
|
||||
AUTORELEASE(result);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// NSCopying
|
||||
|
|
Loading…
Reference in a new issue