使用以下代码行:
PayPalPayment *payment = [[PayPalPayment alloc] init];
NSLog(@"Price %@",[self.product objectForKey:@"Price"]);
NSString *string = [self.product objectForKey:@"Price"];
payment.amount = [[NSDecimalNumber alloc] initWithString:string];
我的应用程序崩溃了这个日志:
[NSDecimalNumber length]: unrecognized selector sent to instance
NSLog正在返回:
Price 96.67
真是崩溃???
答案 0 :(得分:5)
我猜你有类型问题,最有可能的是对象
[self.product objectForKey:@"Price"];
我的猜测是这个对象已经是NSDecimalNumber
了,当你把它当作一个字符串处理然后用它来调用initWithString方法时,会发生不好的事情
断点:
payment.amount = [[NSDecimalNumber alloc] initWithString:string];
然后在调试器中输入po [string class]
。
这将显示存储在[self.product objectForKey:@"Price"];
答案 1 :(得分:0)
您的string
对象看起来不是NSString
。看起来它实际上是NSDecimalNumber
- 在那里设置断点并检查对象。什么类型的对象是self.product
?