由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [NSDecimalNumber length]:

Abd*_*que 1 paypal ios parse-platform

使用以下代码行:

PayPalPayment *payment = [[PayPalPayment alloc] init];
NSLog(@"Price %@",[self.product objectForKey:@"Price"]);
NSString *string = [self.product objectForKey:@"Price"];
payment.amount = [[NSDecimalNumber alloc] initWithString:string];
Run Code Online (Sandbox Code Playgroud)

我的应用程序崩溃了这个日志:

[NSDecimalNumber length]: unrecognized selector sent to instance
Run Code Online (Sandbox Code Playgroud)

NSLog正在返回:

Price 96.67
Run Code Online (Sandbox Code Playgroud)

真是崩溃???

小智 5

我猜你有一个类型问题,最有可能的对象在
[self.product objectForKey:@"Price"];
我的猜测是这个对象已经是一个NSDecimalNumber,当你把它当作一个字符串然后用它调用initWithString方法时,会发生坏事

把断点放在:
payment.amount = [[NSDecimalNumber alloc] initWithString:string];

然后键入po [string class]调试器.

这将显示存储在的对象类型 [self.product objectForKey:@"Price"];