Class: NSDecimalNumberHandler

Inherits:
NSObject show all

Overview

NSDecimalNumberHandler is a class that adopts the NSDecimalNumberBehaviors protocol. This class allows you to set the way an NSDecimalNumber object rounds off and handles errors, without having to create a custom class.

Class Method Summary (collapse)

Instance Method Summary (collapse)

Methods inherited from NSObject

#!, #!=, #!~, #, #==, #===, #=~, #Rational, #__callee__, #__method__, #__send__, #__type__, `, alloc, allocWithZone:, #autoContentAccessingProxy, autoload, autoload?, autorelease_pool, #awakeAfterUsingCoder:, binding, block_given?, caller, cancelPreviousPerformRequestsWithTarget:, cancelPreviousPerformRequestsWithTarget:selector:object:, catch, class, classFallbacksForKeyedArchiver, #classForCoder, #classForKeyedArchiver, classForKeyedUnarchiver, #clone, conformsToProtocol:, #copy, copyWithZone:, #dealloc, #define_singleton_method, description, display, #doesNotRecognizeSelector:, #dup, #enum_for, #eql?, #equal?, #extend, fail, #finalize, format, #forwardInvocation:, #forwardingTargetForSelector:, framework, #freeze, #frozen?, getpass, gets, global_variables, #init, initialize, #initialize_clone, #initialize_copy, #initialize_dup, #inspect, instanceMethodForSelector:, instanceMethodSignatureForSelector:, #instance_eval, #instance_exec, #instance_of?, #instance_variable_defined?, #instance_variable_get, #instance_variable_set, #instance_variables, instancesRespondToSelector:, isSubclassOfClass:, #is_a?, iterator?, #kind_of?, lambda, load, load_bridge_support_file, load_plist, local_variables, loop, #method, #methodForSelector:, #methodSignatureForSelector:, #methods, #mutableCopy, mutableCopyWithZone:, new, #nil?, open, p, #performSelector:onThread:withObject:waitUntilDone:, #performSelector:onThread:withObject:waitUntilDone:modes:, #performSelector:withObject:afterDelay:, #performSelector:withObject:afterDelay:inModes:, #performSelectorInBackground:withObject:, #performSelectorOnMainThread:withObject:waitUntilDone:, #performSelectorOnMainThread:withObject:waitUntilDone:modes:, print, printf, #private_methods, proc, #protected_methods, #public_method, #public_methods, #public_send, putc, puts, raise, rand, readline, readlines, #replacementObjectForCoder:, #replacementObjectForKeyedArchiver:, require, resolveClassMethod:, resolveInstanceMethod:, #respond_to?, #respond_to_missing?, select, #send, setVersion:, #singleton_methods, sprintf, srand, superclass, #taint, #tainted?, #tap, test, throw, #to_plist, #to_s, trace_var, trap, #trust, #untaint, untrace_var, #untrust, #untrusted?, version

Constructor Details

This class inherits a constructor from NSObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class NSObject

Class Method Details

+ (Object) decimalNumberHandlerWithRoundingMode(roundingMode, scale:scale, raiseOnExactness:raiseOnExactness, raiseOnOverflow:raiseOnOverflow, raiseOnUnderflow:raiseOnUnderflow, raiseOnDivideByZero:raiseOnDivideByZero)

Returns an NSDecimalNumberHandler object with customized behavior. See the NSDecimalNumberBehaviors protocol specification for a complete explanation of the possible behaviors.

Parameters:

  • roundingMode (NSRoundingMode)

    The rounding mode to use. There are four possible values: NSRoundUp, NSRoundDown, NSRoundPlain, and NSRoundBankers.

  • scale (Integer)

    The number of digits a rounded value should have after its decimal point.

  • raiseOnExactness (Boolean)

    If YES, in the event of an exactness error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method.

  • raiseOnOverflow (Boolean)

    If YES, in the event of an overflow error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method

  • raiseOnUnderflow (Boolean)

    If YES, in the event of an underflow error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method

  • raiseOnDivideByZero (Boolean)

    If YES, in the event of a divide by zero error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method

Returns:

+ (Object) defaultDecimalNumberHandler

Returns the default instance of NSDecimalNumberHandler. This default decimal number handler rounds to the closest possible return value. It assumes your need for precision does not exceed 38 significant digits, and it raises an exception when its NSDecimalNumber object tries to divide by 0 or when its NSDecimalNumber object produces a number too big or too small to be represented.

Returns:

Instance Method Details

- (Object) initWithRoundingMode(roundingMode, scale:scale, raiseOnExactness:raiseOnExactness, raiseOnOverflow:raiseOnOverflow, raiseOnUnderflow:raiseOnUnderflow, raiseOnDivideByZero:raiseOnDivideByZero)

Returns an NSDecimalNumberHandler object initialized so it behaves as specified by the method’s arguments. See the NSDecimalNumberBehaviors protocol specification for a complete explanation of the possible behaviors.

Parameters:

  • roundingMode (NSRoundingMode)

    The rounding mode to use. There are four possible values: NSRoundUp, NSRoundDown, NSRoundPlain, and NSRoundBankers.

  • scale (Integer)

    The number of digits a rounded value should have after its decimal point.

  • raiseOnExactness (Boolean)

    If YES, in the event of an exactness error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method.

  • raiseOnOverflow (Boolean)

    If YES, in the event of an overflow error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method

  • raiseOnUnderflow (Boolean)

    If YES, in the event of an underflow error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method

  • raiseOnDivideByZero (Boolean)

    If YES, in the event of a divide by zero error the handler will raise an exception, otherwise it will ignore the error and return control to the calling method

Returns:

  • (Object)

    An initialized NSDecimalNumberHandler object initialized with customized behavior. The returned object might be different than the original receiver.