Xcode:[__NSCFNumber length]: unrecognized selector sent to instance崩溃解决

当遇到[__NSCFNumber length]: unrecognized selector sent to instance的错误时,通常是由于参数类型错误引起。问题出现在脚本调用Objective-C函数并传递参数时。解决方案是确保将数值类型的参数正确转换为NSString,例如将`[params objectForKey:@"price"];`改为`[NSString stringWithFormat:@"%@", [params objectForKey:@"price"]];`。" 98589363,7326309,C/C++编译警告与错误解决方案,"['C语言', 'C++', '编译错误', '编程技巧', '内存管理']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这种报错一般都是参数类型错误导致的,具体要检查一下是哪一个参数的类型。我遇到的情况是脚本调用OC函数时会传参数过来,程序如下:

 -(void) Test:(NSDictionary*)params 
{
 @try {
       
             NSString* price = [params objectForKey:@"price "];
       
             NSString* productname = [params objectForKey:@"productName"];
       
             NSString* productdesc = [params objectForKey:@"productDesc"];
       
          
       
             ViewController * testCtr = [[ViewController alloc]init];
       
             testCtr.delegate = self;
       
             [self presentViewController:rechage animated:NO completion:^{
           
        [testCtr setPrice: price  productname:productname productdesc:productdesc ];
        }];
    } @catch (NSException *exception) {
        NSLog(@"init crash");
    } @finally {
    }

}

这里脚本传回来的price实际是一个数值类型,而不是一个字符串。但是price需要以NSString类型传入,这里读取数据的时候需要转换为NSString类型

NSString*price = [params objectForKey:@"price"]; 改为  NSString* price = [NSString stringWithFormat:@"%@", [params objectForKey:@"price"]];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值