私はいつもNSDecimalNumberで問題にぶつかるようです!今日、私はこのエラーを受け取ります:
"Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSCFNumber decimalNumberByDividingBy:withBehavior:]: unrecognized selector sent to instance 0xd1fb10'"
エラーの原因は次のとおりです。
- (void)setUpInstance {
static NSDecimalNumberHandler* roundingBehavior = nil;
if (roundingBehavior == nil) {
roundingBehavior = [[NSDecimalNumberHandler alloc] initWithRoundingMode:NSRoundDown scale:2 raiseOnExactness:NO raiseOnOverflow:NO raiseOnUnderflow:NO raiseOnDivideByZero:NO];
}
NSDecimalNumber *amount = viewController.aDecimalNumber;
NSDecimalNumber *actualValue = viewController.anotherDecimalNumber;
integralPortion = [amount decimalNumberByDividingBy:actualValue withBehavior:roundingBehavior];
...
}
ドキュメントでは、メソッドを次のように定義しています。
-(NSDecimalNumber*)decimalNumberByDividingBy:(NSDecimalNumber *)decimalNumber
withBehavior:(id<NSDecimalNumberBehaviors>)behavior
(id<NSDecimalNumberBehaviors>)behavior
" "引数を正しく解釈してはいけません。NSDecimalNumbersBehaviorsプロトコルに準拠している限り、それは単なるオブジェクトではありませんか?
私は何を間違っているのですか?コード例は非常に役立ちます。
ハッピー・フライデー!