关于传参类型不匹配的问题

本篇文章主要介绍了"-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance 0x0000000000000000",对于IOS开发感兴趣的同学可以参考一下。

通过模型在两个页面之间传值的时候程序崩溃了,并报了这样一个错误:

-[__NSCFNumber rangeOfCharacterFromSet:]: unrecognized selector sent to instance 0x0000000000000000
(lldb)

通过查询,得知这是这个算是类型的不匹配,就是把NSNumber类型的赋给字符串了自己还不知情而导致,反正各种说法都差不多,于是,我便仔细的检查了下源代码的类型,原始代码如下:

userInfoList = @[ self.userInfoModel.district, self.userInfoModel.urlString, self.userInfoModel.nickName, self.userInfoModel.identifier];

因为是直接传了一个模型过来,使用的是其中部分元素,为了方便赋值,就直接取出来放在了一个数组中,NSLog检查了一下,发现数据没有任何问题,赋值的时候是赋给NSString的对象。因为在传过来之前都是NSString类型的数据,传过来之后本以为没有任何问题,结果却崩溃了。
最坑之处在于即使通过打断点来运行查找错误也依然没找到,在经过无数种类型转换之后还是没能解决,折腾了很久,突然想到以前使用的一种方式,抱着试一试的心态,没想到还真给解决了,代码如下:

// 从模型中取出需要使用的数据转换成可以赋值的格式(不经过转换会导致程序崩溃)
NSString *district = [NSString stringWithFormat:@"%@", self.userInfoModel.district];  
NSString *urlString = [NSString stringWithFormat:@"%@", self.userInfoModel.urlString];  
NSString *nickName = [NSString stringWithFormat:@"%@", self.userInfoModel.nickName];  
NSString *identifier = [NSString stringWithFormat:@"%@", self.userInfoModel.identifier];  
userInfoList = @[district, urlString, nickName, identifier];  

另:

[cell setColumnTitle:[homeData objectAtIndex:row]];

这里其实是要传NSString类型,而其实返回的是NSArray类型,这个错误不会立即触发,而是过一段时间再触发,所以不好定位。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • importUIKit classViewController:UITabBarController{ enumD...
    明哥_Young阅读 3,923评论 1 10
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,222评论 30 472
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,916评论 25 709
  • 1 五一节放假前,爸妈突然在微信里对我说,“我们五一去北京找你玩!” 得知消息的第一刻,我是拒绝的。因为从小到大,...
    兔子先生碎碎念阅读 656评论 0 1
  • 文❤南城念北安 01 01 “哎,你这人怎么这样啊!是我先来的,怎么插队?” 影子排了一个半小时的队终于轮到她了,...
    一个惊鸿阅读 800评论 8 38